定义一个复数类Complex,使下面的代码能够工作【填空】

定义一个复数类Complex,使下面的代码能够工作:

Complex c1(3, 5); // 用复数3+5i初始化c1 

Complex c2=4.5; // 用实数4.5初始化c2 

c1.add(c2); // 将C1与c2相加,结果保存在c1中 

c1.show(); // 将c1输出(这时结果应该是7.5+5i) 

c2.sub(c1); // c2-c1,结果保存在c2中 

注意:此题只需要完成类的设计与实现,不需要处理输入输出,以下输入输出仅供参考

输入格式   
第1行2个数字,分别为第一个复数的实、虚部分
第2行1个数字,第2个复数的实数部分
输出格式   
4行,每行一个复数。
前2行是输入的2个复数按格式要求输出
后面2行是经过加减运算后的结果。

填空

int main()
{
double re, im;
cin >> re >> im;
Complex c1(re, im); // 用re, im初始化c1
cin >> re;
Complex c2 = re; // 用实数re初始化c2

c1.show();
c2.show();
c1.add(c2);         // 将C1与c2相加,结果保存在c1中
c1.show();          // 将c1输出
c2.sub(c1);            // c2-c1,结果保存在c2中 
c2.show();            // 输出c2 

return 0;

}

需要实现如下成员函数
Complex(double real, double image = 0);
Complex(const Complex &);
add(const Complex &);
show();
sub(const Complex &);
两个数据成员 double m_real, m_image;

剩下自己写了, 干这行不能懒。

望采纳。