第3章 Data語義學

2021-09-28 20:35:11 字數 1068 閱讀 9862

類的static data members被放置在程式的global data segment,nonstatic members資料直接存放在類物件中。

類物件的實際大小,要考慮:1.由編譯器自動加上的額外data members,用來支援某些語言特性;2.位元組對齊的需要。

nonstatic data members在class object中的排列順序和其被宣告的順序一樣。

c++standard要求,較晚出現的members在class object中的較高位址。

非指標物件和指標物件 對data member的執行效率的比較:_x是struct member、class member、單一繼承、多重繼承的情況下是完全相同,如果_x是virtual base class 的member,指標物件訪問速度會比較慢。

乙個derived class object所表現出來的東西,是其自己的members加上基類成員的總和。

只有乙個虛函式表,派生類的虛函式位址均存放在該表中(無論是重寫基類虛函式,還是新增的虛函式)。

派生類大小 = 基類大小 + 派生類新增members大小。

指向data menbers的指標(針對類而言的),返回的是data members的offset。

為了區別乙個「沒有指向任何data member」的指標和乙個指向「第乙個data member」的指標,每乙個真正的member offset值都被加上1。

第5章 構造 解構 拷貝語義學

我們可以定義和呼叫乙個純虛函式,不過只能被靜態呼叫,不能由虛擬機制呼叫 inline void abstract base inte ce const inline void concrete derived inte ce const ps 類中的pure virtual destructor必須...

深度探索C 物件模型 Data語義學

1 data member的繫結 對於下圖的類 x 中的x返回的是類內部的x,這是因為編譯器對於這個的處理是,如果乙個inline函式在類宣告之後立刻被定義,但還是在整個類宣告完成之後,才隊這個成員函式的本體進行分析,所以x繫結的是類內部的x 然而對於成員函式的引數列表則不是這樣的,它們會在第一次遇...

3 2 內聯語義學

文字塊中的小部分的語義。源文章 inline semantics 雖然段落和列表的目的是為了識別整段文字,但我們有時想為文字中的乙個詞 或幾個詞 提供意義。對於重要的詞,使用標籤。這 重要strong 但這並不重要。p 效果 這重要,但這並不重要。預設情況下,元素會以黑體顯示,但請記住,這只是瀏覽器...