转换构造函数 与 类型转换函数
#include<iostream>
using namespace std;
class Complex
{
public:
Complex(){real=0;imag=3.33;}
Complex(double r,double i):real(r),imag(i){}
Complex(double r){real=r;imag=2.22;}
Complex(const Complex& c){real=c.real;imag=c.imag;}
operator double(){return real;}
Complex operator+ (Complex& c2);
void dispaly();
private:
double real;
double imag;
};
void Complex::dispaly()
{
cout<<real<<"+"<<imag<<"i"<<endl;
}
Complex Complex::operator+(Complex& c2)
{
Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}
int main()
{
Complex c1,c2(10,12),c3(10); //c3转换构造函数 c1默认构造函数
c2.dispaly();
c2=c2+10; //调用类型转换函数
c2.dispaly(); //20+2.22i c2+10先调用转换类型函数为20, c2=20;再调用转换构造函数
c1.dispaly();
c1=c3; //拷贝构造函数 用于一个对象初始化另一个同类对象
c1.dispa