C 之物件模型二

2021-10-03 06:02:19 字數 701 閱讀 7637

c++程式設計之記憶體模型

c++程式在執行時,將記憶體大方向劃分為四個區域

**區:存放函式體的二進位制**,由作業系統進行管理的

全域性區:存放全域性變數、靜態變數和常量

棧區:由編譯器自動分配釋放,存放函式的引數值、區域性變數等

堆區:由程式設計師分配和釋放,若程式設計師不釋放,程式結束時由作業系統收回

this指標概念

this指標指向被呼叫的成員函式所屬物件

用途:2. 解決名稱衝突

3. 返回物件本身用 *this實現鏈式程式設計

person&

add(

)

空指標訪問成員函式

空指標訪問成員函式,成員函式中不可以出現this指標

const修飾成員函式

成員函式後加const 稱為常函式 常函式內部不可以修改屬性的值 特殊情況加 mutable

物件前加const 稱為常物件 不可以修改屬性的值 特殊情況 加 mutable 常物件只能呼叫常函式 友元

在程式裡,有些私有屬性也想讓類外特殊的一些函式或者類進行訪問,就需要用到友元的技術

友元的關鍵字:friend

友元的三種實現:

全域性函式做友元

類做友元

成員函式做友元

運算子過載

參考

深度探索C 物件模型之C 物件模型筆記

0.菜鳥覺得,在看這本書的時候最好切換角色,把自己的思維轉換成編譯器開發者,去考慮問題,這樣會容易理解些.當然這樣很難,就想著自己要解決什麼樣的問題好了 1.在c 中,類的資料成員有兩種 靜態和非靜態 成員函式有三種 靜態,非靜態 虛函式。之所以這樣分,大概是因為在設計c 物件模型時,非靜態的資料成...

C 物件模型解析二

編譯器對於物件構造過程的干涉,以及對於程式形式和程式效率的衝擊 對於乙個class x,如果沒有任何user declared constructor,那麼會有乙個預設的constructor被隱式的宣告出來.乙個被隱式宣告出來的建構函式是乙個trivial constructor 無用的const...

C 物件模型 之Data Members

c 將nonstatic data members直接放在每乙個class object中。對於繼承而來的nonstatic data members 不管是virtual或是nonvirtual base class 也是如此.static data members被放置在程式的乙個global ...