對象指的是類的執行個體,類不占有記憶體空間,隻有執行個體化出的對象占記憶體空間。空類對象(無成員變量的類)的大小是1,因為空類同樣可以被執行個體化,每個執行個體在記憶體中都有獨一無二的位址。
面向對象的三大特性:封裝、繼承、多态
有三種通路限定符:public、protected、private
1. public成員可從類外部直接通路,private/protected成員不能從類外部直接通路。
2. 每個限定符在類體中可使用多次,它的作用域是從該限定符出現開始到下一個限定符之前或類體結束前。
3. 類體中如果沒有定義限定符,則預設為私有的。
4. 類的通路限定符展現了面向對象的封裝性。
類的作用域
1. 每個類都定義了自己的作用域,類的成員(成員函數/成員變量)都在類的這個作用域内,成員函數内可任意通路成員變量和其它成員
函數。
2. 對象可以通過 . 直接通路公有成員,指向對象的指針通過 -> 也可以直接通路對象的公有成員。
3. 在類體外定義成員,需要使用 :: 作用域解析符指明成員屬于哪個類域。
類執行個體化對象
1.類隻是一個模型一樣的東西,限定了類有哪些成員,定義出一個類并沒有配置設定實際的記憶體空間來存儲它。
2.一個類可以執行個體化出多個對象,執行個體化出的對象占用實際的實體空間存儲類成員變量。
3.做個比方。類執行個體化出對象就像現實中使用建築設計圖建造出房子,類就像是設計圖,隻設計出需要什麼東西,但是并沒有實體的建築
存在,同樣的類也隻是一個設計,執行個體化出的對象才能實際存儲資料,占用實體空間。
類對象存儲模型
是以每個對象的大小為類中所有成員變量的大小之和,當然這裡也遵循記憶體對齊原則。