程序的運行結果include<iostream.h>class C{inti;public:C();C(int val);void Dispal();~C();};C:C(){count<<”Construcor1”<<endl;i=0;}C::C(int val){count<<”Constructor2”<<endl;i=val;}void C::Display(){cout<<:i=”<<i<<end;}C::-C()}cout<<”Destructor”<<endl;}void mian(){ Ca,b(10);a.Display();b.Display();}
2 回答

子衿沉夜
TA貢獻1828條經驗 獲得超3個贊
……………… 又是萬惡的構造和析構函數
運行結果
Construcor1
Constructor2
i = 0
i = 10
Destructor
Destructor
稍微解釋一下
C a,b(10); 構造了兩個C類的對象 構造對象需要調用構造函數 由于構造a對象時調用的是沒有參數的構造函數 因此會運行C::C()這個構造函數 在構造b對象時因為有參數 所以會調用C::C(int val)這個構造函數
下來各自調用dispaly函數就直接輸出相應的i值
最后調用析構函數 輸出Destructor
也就上面的運行結果
添加回答
舉報
0/150
提交
取消