1.若是類為空,則它的大小為1
classa{};
sizeof(a) = 1;//c++規定兩個物件不能有相同的起始位址空間.
2.用struct和class定義的類的預設訪問許可權以及繼承許可權是不一樣的.
struct定義的類的預設訪問許可權和繼承許可權是公有的(public)
class定義的類的預設訪問許可權和繼承許可權是私有的(private)
3.建構函式(函式名和類名相同,無返回值)和析構函式(~+類名)
若是沒有自己實現建構函式或者析構函式,則系統會自動生成,函式體為空,什麼都不做.若是自己實現了建構函式,會根據輸入的引數進行選擇,即函式的過載.
4.建構函式:(無返回值)函式名跟類(class)名相同
如果沒有自己實現建構函式,系統會自動生成乙個預設建構函式,該函式引數列表為空,函式體為空,不做任何事情,若自己實現了建構函式,系統則不會生成預設建構函式在物件進行例項化的時候會根據引數自動呼叫相應的建構函式(函式的過載)
5.拷貝建構函式
用乙個已經存在的物件例項化乙個正在生成的物件的時候會自動呼叫拷貝建構函式,如果沒有自己實現,系統會自動生成預設拷貝建構函式,預設的拷貝建構函式只進行淺拷貝.若自己實現了拷貝建構函式,系統則不會生成預設拷貝析造函式
注意:
1. 必須傳引用(函式傳參也是乙個生成物件的過程)
2. 防止淺拷貝(相當於兩個指標指向同乙個位址)
6.this指標(代表的是指向物件自身的指標)
普通成員方法的引數列表的第乙個預設引數是this指標
普通成員方法中使用到使用到類成員的地方,成員前面預設加上this的解引用
istream類的一些成員函式
呼叫方法 cin.getline 字元陣列 或字元指標 字元個數n,終止標誌字元 預設是以 n 為終止標字元,即終止標誌字元可以不寫。特別注意 用getline函式從輸入流讀字元時,遇到終止標誌字元時結束,指標移到該終止標誌字元之後,下乙個getline函式將該終止標誌的下乙個字元開始接著讀入,如果...
string類的一些成員函式
1 const char data data 函式返回指向自己的第乙個字元的指標.由於data 函式返回的是const char 所以不能直接通過指標修改返回的字串的值,如果要修改,必須把型別轉化為char 2 const char c str c str 函式返回乙個指向正規c字串的指標,內容與本...
關於C 成員函式指標的一些探索
這幾天看 深入探索c 物件模型 遇到乙個問題,思考了好久,是關於成員函式指標的。看下面這段 class base virtual void y class derived public base virtual void y override int main 其在visual studio2013...