#include <iostream>
using namespace std;
class complex
{
public:
complex(){real=0;image=0;}
complex(double r){real=r;image =0;} ///转换构造函数,只有一个形参。将double 转换成complex类型。
complex(double r,double i){real=r;image=i;}
friend complex operator+(complex &c1,complex &c2);
void display();
operator double (){return real;} ///类型转换函数,将complex类型转换成double类型。
private:
double real,image;
};
complex operator+(complex &c1,complex &c2)
{
complex c;
c.real=c1.real+c2.real;
c.image=c1.image+c2.image;
return c;
}
void complex::display()
{
cout<<"("<<real<<","<<image<<"i"<<")"<<endl;
}
int main()
{
complex c1(1,2),c2(2,3),c3;
double x;
x=c1+2.5;
cout<<"x="<<x<<endl;
c3=complex(x);
cout<<"c3=";
c3.display();
c3=c1+c2;
c3.display();
c3=complex(2.5);
c3=c1+c3;
cout<<"c3=";
c3.display();
return 0;
}
转换构造函数与类型构造函数与运算符重载函数
最新推荐文章于 2021-12-27 15:09:12 发布