如果自己不宣告, 編譯器就會暗自為class建立乙個default建構函式、乙個copy建構函式、乙個copy assignment操作符(**合法有意義時編譯器才會生成),以及乙個析構函式
class empty ;
對應地有
class empty
empty(const empty& rhs)
~empty()
empty& operator=(const empty& rhs)
};
注:
內含引用成員或const成員的類,如需支援賦值操作,需自定義賦值操作符。
如基類將賦值操作宣告為private,編譯器拒絕為其子類生成賦值運算函式。
條款5 了解C 默默編寫並呼叫哪些函式
這些函式包括 預設建構函式,複製建構函式,賦值建構函式,以及析構函式。這些函式都屬於public部分。但是在有些情況下,賦值建構函式時沒有意義的,此時編譯器就會拒絕構造,舉乙個例子 template class test void print cout 此時,如果你定義了3個test類的物件t1,t...
條款5 了解C 默默編寫並呼叫哪些函式
1.empty class 在c 處理過後就不再是乙個empty class.編譯器會為它宣告乙個copy 建構函式,乙個copy assignment操作符,乙個析構函式。此外你如果你沒有宣告任何建構函式,編譯器也會為你宣告乙個default建構函式。所有這些函式都是public且inline。所...
了解C 默默編寫並呼叫那些函式
effective c 學習筆記 了解c 默默編寫並呼叫那些函式 know what functions c silently and calls 如果定義乙個類,並且說明都沒有宣告,則c 會預設給它宣告四個函式 1 default建構函式 2 析構函式 編譯器產生的析構函式是non virtual...