關於C 的一道題

2022-09-18 19:55:15 字數 1104 閱讀 6426

1樓:明淵閣

還請樓主耐心去看,雖然沒有分,但學習的精神還是在的。不會的可以繼續問哦。

第一條語句: point p1(10,20)執行的建構函式是point(int x=0,int y=0),因此輸出call the default constructor!

第二條語句: point p2(p1)執行的是第二個建構函式point(point &p),因此輸出 call the copy constructor!

第三條語句:cout<

第四條語句:point p3(20,20),執行的建構函式與第一條語句一樣,因此輸出也一樣為:call the default constructor!

第五條語句:p2=p3; 執行的是=的過載函式因此輸出call the assign constructor!

第六條語句:cout<

注意,此時已經執行完p2=p3,使得p2的x由10變成了20,y還是20,因此p2被改變了。

後面沒有語句了:但是由於c++中建立物件時會自動執行建構函式,物件不用或程式結束時會自動執行解構函式,即~point(),而且執行順序與物件構造的順序相反,因此會先執行p3的解構函式,再執行p2的,最後執行p1的,因此輸出三條語句:

call the destructor!

call the destructor!

call the destructor!

2樓:匿名使用者

p2=p3 是說 把p3的值附給p2 p3是 20 20 所以最後的顯示p2 就是p3的值

因為你定義解構函式了~point 所以檔案呼叫完後會自動呼叫,你定義了三個物件p1 p2 p3,

所以把三個物件的內容都釋放 就呼叫三次,每次都有一個call the destructor!。一共三個。

求給加分

有什麼還要問的 你直接追問 我在了就告訴你

一道c語言題,求解答步驟的作用,一道c語言題,求解答一個步驟的作用

delete是為了釋放new申請出來的記憶體,加個是array delete,因為申請的是maxnode大小的csnode物件。一道c語言題目,求解答!scanf 函式中沒有精度控制。如 scanf 5.2f a 是非法的。不能企圖用此語句輸入小數為2位的實數。則排除c b,d沒有 排除 格式輸入嚴...

關於C 的一道題目請教,關於C 類的一道題目

include void main 已此類推.int就把char改成int double就把.char改成double 就可以看到了 include include using namespace std define typeinfo type cout setw 15 type setw 2 s...

求助一道C語言程式設計題,求助一道C語言程式設計題,題目如下

int max int a,int b,int c else if b a b c else if c a c b include int max int a,int b,int c int main return 0 附運dao行結果內 容 求助一道c語言程式設計題,題目如下 include in...