已知一个名为Complex的复数类,这个类包含: (1)私有成员:实部、虚部,且均为int 型 (2)公有的带默认形参值的构造函数、复制构造函数 (3)公有成员函数Display,其作用为显示复数 要求: (1)实现满足上述属性和行为的Complex类定义; (2)设计函数AddComplex,函数AddComplex功能为实现两个复数相加,要求该函数的形参为复数类的常引用; (3)保证如下主函数能正确运行。
/* 请在这里填写答案 */
int main(){
int x,y;
cin>>x>>y;
Complex c0(x,y);
Complex c1(c0);
cout<<"c1 is: ";
c1.Display();
cin>>x>>y;
Complex c2(x,y);
cout<<"c2 is: ";
c2.Display();
Complex c3;
c3 = AddComplex(c1,c2);
cout<<"c3 is: ";
c3.Display();
return 0;
}
解:
#include <iostream>
#include <string>
using namespace std;
class Complex
{
private:
int real, image;//1)私有成员:实部、虚部,且均为int 型
public:
Complex(int r=0, int c=0):real(r),image(c){}//公有的带默认形参值的构造函数
Complex(const Complex& obj) {
real = obj.real; image = obj.image;//拷贝构造函数
}
void Display()//显示复数
{
if (image == 0)
cout << real << endl;//判断虚数为零时为实数;
else
cout << real <<( image<0 ? "":"+" )<< image << "i" << endl;//判断虚部正负,保证符号正确
}
int get_real() const {
return real;//间接为两复数相加访问私有成员
}
int get_image() const {
return image;
}
};
Complex AddComplex(const Complex& c1, const Complex c2)//两复数相加
{
return Complex(c1.get_real() + c2.get_real(), c1.get_image() + c2.get_image());
}
题写出有段时间了,不过没啥时间记录一下。
写出这题有搜过别人怎么写的,解决了这题对我下面的那些题差不多也是照葫芦画瓢,过段时间再改改,睡觉啦;