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 ...