成員函式的一種
class complex;//編譯器自動生成預設建構函式
complex c1;
complex *p = new complex;
//上面兩個語句類的預設建構函式均被呼叫
class
a;a::a(double r,double i)
a a1;//缺少函式引數
a *a = new a;//少參
a a(2);//ok
a a(2,4);//ok
a *a = new a(3,4);//ok
class csample
csample(int n)
};int main()
;//構造器2兩次被呼叫
csample array3[2] = ;//先呼叫2再呼叫1
csample *array4 = new csample[2];//呼叫兩次構造器1
delete array4;
return
0;}
class test//(1)
test(int n,int m){}//(2)
test(){}//(3)
};test array1[3] = ;
//分別用(1)(2)(3)初始化
test array2[3] = ;
//(2)(2)(1)
test *parray[3] = ;
//(1)(2)
//只初始化兩個物件,因為是指標陣列,最後乙個沒有引數
//意味著最後乙個至真沒有確定指向什麼位置,所以不呼叫建構函式
//沒有生成新的物件
C 學習 建構函式
如果沒有為類顯式地定義乙個建構函式,則c 編譯器會自動生成乙個函式體為空的預設無參的例項建構函式。建構函式主要用於建立類的例項物件。當呼叫建構函式建立乙個物件時,建構函式會為物件分配記憶體空間,並初始化類的成員。建構函式分為例項建構函式和靜態建構函式兩種。例項建構函式用於建立和初始化類的例項。使用n...
C 學習 建構函式與複製建構函式
在建構函式的函式頭初始化 includeusing namespace std class rectangle private const int length int width int main void 複製建構函式 預設複製建構函式的機制 includeusing namespace std...
c 學習 複製建構函式
複製建構函式是個非常微妙的函式,如果不能深刻理解它,可是會出現很多莫名奇妙的錯誤,下面通過乙個程式來詳細的介紹其中的奧妙。1 c 中的隱士成員函式 1 預設建構函式,如果沒有定義 2 複製建構函式,如果沒有定義 3 賦值操作符,如果沒有定義 4 預設析構函式,如果沒有定義 5 位址操作符,如果沒有定...