c++類具有封裝的特性,即外界不能直接訪問類中成員,那類中的資料成員如何初始化呢。其實在類中有一種特殊的函式叫建構函式,它沒有返回值,並且函式名與類名一致,在宣告乙個物件的時候呼叫建構函式。
class person
}建構函式可以像上面這樣寫,:後面叫做初始化列表,一般這種簡單的賦值建議使用這種寫法,這樣寫相當於a,b是直接初始化為所賦的值。
如果是在大括號裡寫,效果類似於
int a;
a = 1;
而如果用初始化列表效果類似於,int a = 1;
也許現在感覺不出兩者的差異,但是用初始化列表明顯高大上啊 ,哈哈哈。
建構函式在沒有寫的時候,編譯器會自動生成乙個無引數,內容為空的建構函式。建構函式支援過載。
析構函式名也和類名一致,在其前面加~就行,like
~person();
析構函式一般在類中有指標,需要動態分配記憶體時需要寫。
在乙個區域**結束時,析構函式將自動呼叫,將分配的記憶體delete掉。
建構函式和析構函式
建構函式沒有返回值,不能被顯示的呼叫。它是在定義物件時由系統自動執行的,而且只執行一次。如果沒有定義建構函式,系統會自動生成乙個建構函式,只是這個建構函式的函式體是空,沒有引數,也不執行任何初始化的操作。帶引數的建構函式 有一種簡練,方便的寫法 建構函式的引數初始化表 box int h,int w...
析構函式和建構函式
每個物件生成的時候都要完成物件的初始化,如設定屬性的初始值。c 中規定每個類都有乙個初始值,如果沒有,系統會產生乙個預設的建構函式。這個建構函式沒有任何引數,不做任何額外的工作。但往往我們會自己寫乙個建構函式,用來進行特殊的初始化工作。這樣的話,編譯器就不會再為其生成預設的建構函式。class 類名...
建構函式和析構函式
stock hot 因為資料部分的訪問狀態是私有的,程式不能訪問資料成員。建立stock的建構函式,由於需要為stock提供3個值,因此應為建構函式提供3個引數值,程式設計師可能指向設定company成員,而其他的設定為0 使用預設引數完成 宣告如下 stock const char co,int ...