这道题应该怎么做?C++的。要用到析构,拷贝和构造

抽象一个复数类,对复数做简单输入输出操作。... 抽象一个复数类,对复数做简单输入输出操作。 展开
 我来答
Eli2021
2020-04-08 · TA获得超过664个赞
知道小有建树答主
回答量:1266
采纳率:72%
帮助的人:334万
展开全部

#include<iostream>

using namespace std;

 

class Complex

{

friend istream& operator>>(istream& in, Complex& a);

public:

Complex(double real = 8.0, double image = 6.0)       //构造函数

:_real(real)

, _image(image)

{

cout <<" Complex(double real, double image)" << endl;

}

Complex(const Complex& d)          //拷贝函数

{

cout << "Complex(const Complex& d)" << endl;

_real = d._real;

_image = d._image;

}

~Complex()       //析构函数

{

cout << "~Complex() " << endl;

_real = 0.0;

_image = 0.0;

}

Complex& operator=(const Complex& d)         //赋值运算符重载

{

cout << "=" << endl;

if (this != &d)

{

_real = d._real;

_image = d._image;

}

return *this;

}

void Display()const                //打印复数

{

cout << "_real:"<< _real;

cout << "      _image:" << _image << endl;

}

bool operator==(const Complex& d)             //==

{

cout << "==" << endl;

return this->_real == d._real

&& this->_image == d._image;

}

bool operator!=(const Complex& d)             //!=

{

cout << "!=" << endl;

return this->_real != d._real

|| this->_image == d._image;

}

Complex operator+ (const Complex& d)           //+

{

cout << "+" << endl;

Complex ret;

ret._real = (this->_real + d._real);

ret._image = (this->_image + d._image);

return ret;

}

protected:

double _real;

double _image;

};


istream& operator>>(istream& in, Complex& a)

{

return in>>a._real>>a._image;

}

int main(int argc, char *argv[])

{

Complex d1;

Complex d2(4.0, 6.6);

 

  cin>>d1;

d1.Display();

d2.Display();

Complex d3;

d3 = d1 + d2;

d3.Display();

return 0;

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式