文章目录

一、现double数据与Complex类型相加,得出double

#include <iostream>
using namespace std;

class Complex
{
public:
Complex() //定义无参构造函数
{
real=0;
imag=0;
}
Complex(double r, double i) //定义带参构造函数重载
{
real=r;
imag=i;
}
operator double() //定义类型转换函数
{
return real;
}
private: //定义私有成员函数
double real;
double imag;
};

int main()
{
Complex c1(3, 4), c2(5, -10), c3; //实例化三个对象,传入参数
double d;
d= 2.5+c2; //一个double类型与c2对象相加
cout << "复数型c1加上double型c2的值为:" << d << endl;
return 0;
}

C++类型转换实现不同类型相加【复数与double类型相加】_面向对象编程

二、复数与double相加,得出复数

#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;
}
friend Complex operator + (Complex c1, Complex c2); //声明重载运算符号 + 为友元函数
void display(); //声明普通成员函数,将数据输出
private: //定义私有成员函数
double real;
double imag;
};

//定义重载运算符号 + 的友元函数,传入两个Complex对象
Complex operator + (Complex c1, Complex c2)
{
return Complex(c1.real + c2.real, c1.imag + c2.imag); //返回c1、c2的实部相加,虚部相加的一个Complex类型
}

//定义普通成员函数,显示
void Complex::display()
{
cout << "(" << real << "," << imag << ")" << endl;
}

int main()
{
Complex c1(3, 4), c2(5, -10), c3; //实例化三个对象,传入参数
c3= c1+2.5;
cout << "复数型c1加上double型2.5的值为:";
c3.display();

c3= c2+2.5; //一个double类型与c2对象相加,或者c2+2.5
cout << "复数型c2加上double型2.5的值为:";
c3.display(); //显示出c3的值
return 0;
}

C++类型转换实现不同类型相加【复数与double类型相加】_程序人生_02