64,654
社区成员
发帖
与我相关
我的任务
分享
#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;
}
//Complex double(){return real;}此处不可用类型转换函数,对c1+2.5(它与转换构造函数)出现二义性
friend Complex operator + (const Complex &c1,const Complex &c2 ); //重载运算符“+”的友元函数
void display();
private:
double real;
double imag;
};
Complex operator + (const Complex &c1,const Complex &c2 ) //定义运算符“+”重载函数
{
return Complex( c1.real+c2.real,c1.imag+c2.imag );
}
void Complex::display()
{
cout <<"(" <<real <<"," <<imag <<"i)" <<endl;
}
int main()
{
Complex c1( 3,4 ),c2( 5,10 ),c3;
c3=c1+2.5; //复数与double数据相加
c3.display();
return 0;
}