国产探花免费观看_亚洲丰满少妇自慰呻吟_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實例



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

圖片精選

主站蜘蛛池模板: 沙洋县| 松桃| 耒阳市| 彰武县| 耿马| 潜江市| 浮梁县| 彰武县| 合水县| 泰来县| 惠安县| 津市市| 赤水市| 紫金县| 昌图县| 上杭县| 肃北| 黑河市| 长宁区| 扎赉特旗| 天全县| 革吉县| 曲松县| 突泉县| 钟山县| 平乡县| 洪江市| 龙陵县| 元朗区| 建水县| 临朐县| 和田市| 巴马| 措勤县| 凤山市| 大丰市| 延安市| 绥化市| 喀什市| 白城市| 潍坊市|