1. 程式人生 > >c++內存模型,變量和函數

c++內存模型,變量和函數

copy 方法指針 ons ati c++ 容易 類型 func 對象

1、c++中方法 存儲在單獨的方法表中,fuction——table,類中有方法指針來指向方法表中方法的實際地址,static和nonstatic 方法都存儲在方法表中。 2、c++中類的對象的 成員變量存在class中,static 變量存儲在class之外。 3、c++的成員指針式類似slot 插槽式設計,很容易計算class的大小。 4、每個class 產生一堆指向vitrul fuction的指針,這些指針放在一個表中,稱為virtual table(vtbl)。 5、c++中對象直接賦值,實際上發生的是copy構造 例如:Animals 是父類,Dog是子類, Dog d; Animals ani=d; ani實際訪問到的其實還是ani能訪問的 ani初期編譯能訪問到的函數和變量,它並不是一個d對象。好繞口,好難講清楚。 6、c++通過指針和引用類型來實現多態,也就是只有再指針類型和引用類型下能發生多態;;主要靠virtual 來實現多態,virtual function,virtual table。

c++內存模型,變量和函數