用友元实现了对复数的一个加法操作。
很重要的一点是:
如果要创建一个没有初始化的对象,一定要有一个默认构造函数,不然会报错。
#include<iostream>
using namespace std;
class Complex{
private:
int real;
int image;
public:
Complex(int r,int i){
real=r;
image=i;
}
Complex(Complex &c0){
real=c0.real;
image=c0.image;
}
Complex(){
real=0;
image=0;
}
int get_real(){return real;}
int get_image(){return image;}
void Display(){
if(image>=0){
cout<<real<<"+"<<image<<"i"<<endl;
}
else{
cout<<real<<image<<"i"<<endl;
}
}
friend Complex AddComplex(Complex c1,Complex c2);
};
Complex AddComplex(Complex c1,Complex c2){
Complex c;
c.real=c1.get_real()+c2.get_real();
c.image=c1.image+c2.image;
return c;
}
//Complex AddComplex(Complex c1,Complex c2){
// return Complex(c1.get_real()+c2.get_real() ,c1.get_image() +c2.get_image());
//}
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();
// cout<<" "<<b<<endl;
// return 0;
}