国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

GeekBand C++面向對象下第二周筆記

2019-11-08 02:50:32
字體:
來源:轉載
供稿:網友

GeekBand C++面向對象下第二周筆記


1.關于vptr和vtbl

這里寫圖片描述 虛函數表(Virtual table 或稱為vtbl),虛函數指針( Virtual pointer 或者稱為 vptr) 編譯器會為每個有虛函數的類創建一個虛函數表,該虛函數表將被該類的所有對象共享。類的每個虛成員占據虛函數表中的一行。如果類中有N個虛函數,那么其虛函數表將有N*4字節的大小。 由p指針指向vptr,再由vptr指向vtbl中的第n個指針,調用這個指針所指向的函數,由此實現了多態。 A* p = new B(); 多態的三個條件

通過指針調用有虛指針和虛表向上轉型

2.靜態綁定和動態綁定

這里寫圖片描述

上圖是靜態綁定的情況 如果編譯器可以在編譯階段就完成綁定,就叫作靜態綁定或前期綁定。 這里寫圖片描述

上圖是動態綁定的情況 動態綁定是指編譯器在編譯階段不知道要調用哪個方法,直到運行時才能確定。


3.const關鍵字

這里寫圖片描述

使用const的好處在于它允許指定一種語意上的約束——某種對象不能被修改——編譯器具體來實施這種約束。通過const,你可以通知編譯器和其他程序員某個值要保持不變。只要是這種情況,你就要明確地使用const ,因為這樣做就可以借助編譯器的幫助確保這種約束不被破壞。上圖是const的調用規則。


4.重載new和delete

這里寫圖片描述

為什么有必要寫自己的Operator new和operator delete? 答案通常是:為了效率。缺省的operator new和operator delete具有非常好的通用性,它的這種靈活性也使得在某些特定的場合下,可以進一步改善它的性能。尤其在那些需要動態分配大量的但很小的對象的應用程序里,情況更是如此。


5.basic_string使用new(extra)擴充申請量

這里寫圖片描述

這便是一個重載new和delete實例



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 衢州市| 龙川县| 吐鲁番市| 武川县| 富裕县| 开鲁县| 桦南县| 无棣县| 普格县| 红桥区| 余姚市| 宣化县| 乳源| 临潭县| 龙胜| 进贤县| 黄骅市| 利辛县| 吴忠市| 万州区| 尚志市| 和平县| 瑞安市| 广丰县| 曲水县| 沙河市| 舟山市| 疏勒县| 天祝| 大方县| 盐山县| 佛坪县| 江津市| 万荣县| 泊头市| 新津县| 天等县| 盐津县| 东宁县| 托克逊县| 东城区|