C++第四章运算符重载习题-6:使用类型转换符实现复数类和double类的相加运算

类型转换符:operator double(){return real;}   将Complex类转换为double return Complex类中的real; 

#include<iostream>

using namespace std;

class Complex
{
public:
    Complex(){real=0;imag=0;}
    Complex(double r){real=r;imag=0;}
    Complex(double r,double i):real(r),imag(i){}
    void display();
    operator double(){return real;}  //类型转换函数:将c1转换为了double类型函数
private:
    double real;
    double imag;
};

void Complex::display()
{
    cout<<real<<"+"<<imag<<"i"<<endl;
}

int main()
{
    Complex c1(3,6),c2(1,10),c3;
    double dl;
    dl=c1+4.1;   //将c1转换为了double类型
    cout<<"dl="<<dl<<endl;
    Complex c(dl);
    cout<<"Complex(dl)=";
    c.display();
}
 

猜你喜欢

转载自blog.csdn.net/n20164206199/article/details/85239587