C 單引數建構函式 小結

2021-06-21 23:04:38 字數 814 閱讀 6247

單引數建構函式是一種比較特殊的建構函式

例如: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...