Class的兩個經(jīng)典的分類
class without pointer member(s)
class with pointer mumber(s)
類的特殊成員函數(shù)
構(gòu)造函數(shù)
與內(nèi)置類型的初始化操作相似干旧,將類的數(shù)據(jù)初始化斤富,初始化的順序與類內(nèi)定義的數(shù)據(jù)成員順序相同诚纸;
類名(形參表){...}
無返回值類型金顿,其他與成員函數(shù)一樣盏道。
拷貝構(gòu)造函數(shù)
與拷貝構(gòu)造形式相似,數(shù)據(jù)在類中傳遞
類名(類名 &對象名){...}
拷貝賦值函數(shù)
操作符=的重載
類類型 &? operator =(類名& 對象名){...
return *this
}
析構(gòu)函數(shù)
在程序結(jié)束是調(diào)用,做收尾工作
~類名(){...}
動態(tài)內(nèi)存
程序中棧內(nèi)存是靜態(tài)內(nèi)存芍锚,堆內(nèi)存是動態(tài)內(nèi)存可以使用new來分配動態(tài)空間洽糟;
類名*P=new 類名;
與delete P详恼;配合使用
也可以分配動態(tài)數(shù)組
類名*P=new 類名[]补君;
與delete []P配合;
切記:一定要用delete 釋放內(nèi)存昧互,否則內(nèi)存泄漏挽铁;
類的靜態(tài)數(shù)據(jù)成員
靜態(tài)數(shù)據(jù)成員
用關(guān)鍵字static聲明
為該類的所有對象共享,靜態(tài)數(shù)據(jù)成員具有靜態(tài)生存期敞掘。
必須在類外定義和初始化叽掘,用(::)來指明所屬的類。
類的靜態(tài)函數(shù)成員
類外代碼可以使用類名和作用域操作符來調(diào)用靜態(tài)成員函數(shù)玖雁。
靜態(tài)成員函數(shù)主要用于處理該類的靜態(tài)數(shù)據(jù)成員更扁,可以直接調(diào)用靜態(tài)成員函數(shù)。
如果訪問非靜態(tài)成員赫冬,要通過對象來訪問浓镜。
面對對象
繼承 ? ?復(fù)合 ? ?委托
繼承
有三種方式繼承 :public ,protect劲厌,private
常用公用繼承
繼承的構(gòu)造函數(shù)
先初始化基類膛薛,再初始化派生類。
派生類名::派生類名(參數(shù)表):基類名1(基類1初始化參數(shù)表),? ...? ,基類名n(基類名n初始化參數(shù))补鼻,成員對象名1(成員對象1初始化參數(shù)列表), ... , 成員對象名m(成員對象m初始化參數(shù)列表)
{
派生類構(gòu)造函數(shù)的其他操作哄啄;
}
繼承的析構(gòu)函數(shù)
先初始化派生類雅任,再初始化基類。
虛函數(shù)
non-virtual 你不希望派生類繼承重新定義咨跌;
virtual 你希望通過派生類繼承重新定義沪么;
pure virtual? 你希望派生類繼承并且一定要重新定義;