天天看點

YTU 2625: B 構造函數和析構函數

2625: B 構造函數和析構函數

時間限制: 1 Sec  

記憶體限制: 128 MB

送出: 772  

解決: 513

題目描述

在建立類對象時系統自動該類的構造函數完成對象的初始化工作,

當類對象生命周期結束時,系統在釋放對象空間之前自動調用析構函數。

此題要求:

根據主程式(main函數)和程式執行結果,結合構造函數和析構函數相關知識,在下面的程式段基礎上完成整個設計。

提示:(1)需要自定義複數類Complex,并在類中添加适當的構造函數和析構函數。

          (2)隻送出begin到end部分的代碼

#include <iostream>
 using namespace std;//将程式需要的其他成份寫在下面,隻送出begin到end部分的代碼
 //******************** begin ******************** //********************* end ********************
 int main()
 {
 double real,image; cin>>real>>image;

 Complex c1(real,image); Complex c2=c1;
 return 0;
 }      

程式輸入輸出樣例如 Sample Input 和 Sample Output 所示。

輸入

 一個複數的實部和虛部

輸出

 調用相關構造函數和析構函數的運作結果(需要自己分析),參照Sample Output 所示。

樣例輸入

1.5 2.6      

樣例輸出

(1.5,2.6i) is constructed!
(1.5,2.6i) is copy constructed!
destructed!
destructed!      

提示

(1)需要自定義複數類Complex,并在類中添加适當的構造函數和析構函數。

(2)隻送出begin到end部分的代碼

迷失在幽谷中的鳥兒,獨自飛翔在這偌大的天地間,卻不知自己該飛往何方……

#include <iostream>
using namespace std;
class Complex
{
public:
    void draw()
    {
        cout<<"("<<real<<","<<image<<"i) is constructed!"<<endl;
        cout<<"("<<real<<","<<image<<"i) is copy constructed!"<<endl;
        cout<<"destructed!"<<endl;
        cout<<"destructed!"<<endl;
    }
    Complex(double r,double i)
    {
        real=r,image=i;
        draw();
    }
private:
    double real,image;
};
int main()
{
    double real,image;
    cin>>real>>image;
    Complex  c1(real,image);
    Complex  c2=c1;
    return 0;
}