1樓:
執行point p1(10,20)時建立物件p1,呼叫建構函式point(int x=0,int y=0),輸出call the default constructor!
執行point p2(p1)時是用已知物件p1初始化p2,所以要呼叫拷貝建構函式point(point &p),輸出call the copy constructor!
執行cout << p2時,由於p2是物件,要呼叫《的過載友元函式,p2是由p1初始化的,p1的x=10,y=20,所以輸出point p2:10,20.
執行point p3(20,20)時,同第一次一樣,輸出call the default constructor!
執行p2=p3時,要呼叫=號的過載函式,輸出call the assign constructor!,並把p3中x、y的值賦給p2的x、y。
最後呼叫cout << p2時,輸出point p2:20,20.因為p2的x、y已經等於p3的x、y了。
當程式執行到main的後}時,要退出,需要呼叫3次解構函式來釋放p3、p2、p1,所以連著輸出了3個call the destructor!,你可以在~point()中的最後多加一個「!」,看看是不是它輸出的……
2樓:匿名使用者
首先呼叫第一個函式
point p1(10,20);
這時候函式初始化呼叫建構函式
輸出:call the default constructor!
呼叫第二個函式point p1(10,20);
此函式重寫建構函式。所以不會輸出第一行語句。
呼叫拷貝函式並且輸出
call the copy constructor!
point p2:10,20
呼叫第三個函式的時候先調建構函式,,然後呼叫了成員函式,輸出call the default constructor!
call the assign constructor!
point p2:20,20
最後函式結束呼叫解構函式,三個函式都被析構。輸出:
call the destructor!
call the destructor!
call the destructor!
關於一道c語言題,求詳解,急求,關於一道C語言題,求詳解,急求
在主函式裡 是先執行fx 這個函式的,而執行這個函式得到的值x 15,而後x x a 15 5 20.a 5 所以輸出是 20 和 5 主函式的x帶的是全域性變數的值是fx函式得到的x的值15,而不是定義全域性變數的初始值,也不是fx函式裡x的初值 在這個程式裡用全域性變數無非是想說明全域性變數x在...
C語言的一道題求幫忙解答,關於c語言的一道題,求c高手幫忙解答 謝謝啦
include void swap int a,int b int t a a b b t int main void int a 3 n,i 0 scanf d n while n a i n 10 n 10 if a 1 a 0 swap a 1 a 0 if a 2 a 0 swap a 2 ...
一道浮力題,一道關於浮力的題
方法解說 用密度進行判斷球的沉浮後,再根據不同狀態進行計算,如果是漂浮和懸浮f浮 g物,如果是沉底的,f浮 液體密度 v排 g 解 g球 4n m球 密度 m v 放入水中,則是密度比水小,漂浮。f浮 g物 4n 2 放入酒精中,密度相等,懸浮。f浮 g物 4n 3 放入水銀中,密度比水銀小 漂浮。...