類與物件:
類是物件的抽象,而物件是類的具體例項
類是抽象的,不占用記憶體,而物件是具體的,占用儲存空間
面向過程與物件導向:
c語言是面向過程的,關注的是過程中的資料與方法
c++是物件導向的,關注的是物件的屬性與功能
類的定義:
類的成員函式預設是內聯的。除了類外定義且不加inline關鍵字。
類的兩種定義方式:
類的宣告和定義全部在類體中
類的宣告放在.**件中,類的定義放在.cpp檔案中
類的訪問限定符及封裝:
public成員在類外可以直接訪問
protected和private成員在類外不可訪問
它們的作用域從該訪問限定符出現的位置開始直到下乙個訪問限定符出現時為止
class的體中如果沒有定義限定符,預設是private
struct為public 因為要相容c
封裝:隱藏物件的屬性和實現細節,僅對外公開介面和物件進行互動,將資料和運算元據的方法進行有機結合
類的作用域:
類定義了乙個新的作用域,類的所有成員都必須處在類的作用域中
在類體外定義成員,需要使用::作用域解析符指明成員屬於哪個類域
在類的作用域外,只能通過物件(或指標)借助成員訪問操作符 . 和 -> 來訪問類成員
類的例項化:用類型別建立物件的過程,稱為類的例項化
類只是乙個模型一樣的東西,限定了類有哪些成員,定義出乙個類並沒有分配實際的記憶體空間來儲存它
乙個類可以例項化出多個物件,例項化出的物件,占用實際的物理空間 儲存 類成員變數
類的大小的計算:
只保留物件的具體成員變數,所有成員函式存放在統一的**公共區
結構體內存對齊規則:
第乙個成員在與結構體偏移量為0的位址處
其他成員變數要對齊到某個數字(對齊數)的整數倍的位址處
對齊數 = 編譯器預設的對齊數與該成員變數大小的較小值
vs預設值為8 gcc預設值為4
結構體總大小為最大對齊數的整數倍
如果巢狀了結構體的情況,巢狀的結構體對齊到自己的最大對齊數的整數倍處,結構體的整數倍大小就是所有最大對齊數(含巢狀結構體對齊數)的整數倍
類的this指標:
每個成員函式都有乙個**指標形參,它的名字是固定的,稱為this指標,this指標是隱式的(建構函式比較特殊,沒有這個隱含this形參)
編譯器會對成員函式進行處理,在物件呼叫成員函式時,物件位址作實參傳遞給成員函式的第乙個形參this指標
this指標是成員函式隱含指標形參,是編譯器自己處理的,我們不能在成員函式的形參中新增this指標的引數定義,也不能在呼叫時顯式傳遞物件的位址給this指標
this指標存在棧上
C 類與物件的簡單複習
定義類的語法形式 class 類名稱 宣告乙個物件 類名 物件名 訪問物件的成員 1 訪問物件的資料成員 物件名.資料成員名 2 訪問物件的函式成員 物件名.函式成員名 參數列 成員函式的實現 返回值型別 void or int 類名 函式成員名 參數列 類成員函式的預設值一定要寫在類定義中。內聯成...
類與物件複習總結
類是對具有相同屬性和行為的一組物件的抽象與統一描述。是使用者自定義的資料型別,類包括行為與屬性兩部分,屬性以資料成員表示,行為通過成員函式實現。c 中預設類的成員訪問許可權是私有的,成員函式重點是對類中的資料成員做操作。類的定義是 class 類名 類在定義完需要在大括號後加上 號。如果私有成員放在...
C 筆記(七)類與物件
include include using namespace std class human void setage int a void introduce intmain 輸出 my mane is aaa and i m 10 years old my mane is bbb and i m...