單引數建構函式是一種比較特殊的建構函式
例如:calss catype
public:
catype(int a)//單一引數建構函式
nmember = a;
private:
int nmember;
void main()
a cainstance = 2;//此處會呼叫單一引數建構函式,而不會呼叫賦值運算子,切記;這種呼叫方式屬於隱式呼叫
注意:這種呼叫方式,會使得程式不容易正確理解,因此程式設計師,為了防止這樣的呼叫發生, 可以使用關鍵字explicit修改單一引數建構函式,防止其被不可預知的呼叫;,保證其只能通過顯式呼叫的方式呼叫。
單一引數建構函式的呼叫時機:
(1)用於初始化物件;
a cainstance1 = x;//此時呼叫;
(2) 作為函式引數被呼叫時;
void fun(a capar)
fun(x)//此時d呼叫
(3)作為函式返回值僅限於值傳遞
a get()//此時呼叫
乙個極為明顯的例子是,拷貝建構函式,拷貝建構函式顯然是乙個 單一引數建構函式,它具備單一引數建構函式的一切特徵;
拷貝建構函式何時會被呼叫:
(1)用於初始化物件;
a cainstance1 = cainstance2;//此時呼叫;
(2) 作為函式引數被呼叫時;
void fun(a capar)
fun(cainstance)//此時d呼叫
(3)作為函式返回值僅限於值傳遞
a get()//此時呼叫
型別轉化函式和單引數建構函式
c 編譯器被人如此詬病的主要原因就是c 揹著使用者幹了太多的事情,而這些事情往往容易產生語義困惑 知道為什麼溺愛孩子,給孩子一切都安排好,反而會受到不肖子的臭罵了吧?c 隱含做的事情很多,下面我就單從型別轉化這個主題大概說一下c 都在型別轉化過程中做了什麼。不當之處請多批評指正 1 將乙個類轉化成為...
c 建構函式,拷貝建構函式,析構函式小結
1 建構函式 乙個特殊的類成員函式,函式名與類名相同,建立類型別物件時,由編譯器自動呼叫,在物件的生命週期中隻且只呼叫一次,以保證每個資料成員都有乙個合適的初始值。有初始化階段與普通計算階段。class date date int year,int month,int day year year m...
C 變長引數函式小結
變長引數的函式,即引數個數可變 引數型別不定的函式。設計乙個引數個數可變 引數型別不定的函式是可能的,最常見的例子是printf函式 scanf函式和高階語言的format函式。在c c 中,為了通知編譯器函式的引數個數和型別可變 即是不定的 未知的 就必須以三個點結束該函式的宣告。例如 print...