C++程序求救

来源:百度知道 编辑:UC知道 时间:2024/05/13 05:48:43
#include<iostream>
using namespace std;
class complex
{
public:
complex(){real=0;imag=0;}
complex(double r,double i){real=r;imag=i;}
complex operator +(complex&c2);
void display();
private:
double real;
double imag;
};
complex complex::operator +(complex&c2)
{
complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}
void complex::display()
{
cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
int main(void)
{
complex a(15,16),b(30,31),c;
c=a+b;
c.display();
return 0;
}
其中 complex(){real=0;imag=0;}
complex(double r,double i){real=r;imag=i;}
为什么要对complex重载? 能具体说说么? 就是说他重载在低下哪个地方有用?

对complex重载 是因为所传的参数不同 用途也不同
complex(){real=0;imag=0;}
是对一个没有赋值的对象符初值(0,0)
complex(double r,double i){real=r;imag=i;}
是将对象的参数变为该对象的属性
比如说
complex a(15,16);
a.real=15;a.imag=16;
没有参数的那个叫构造函数 用于c的初始化
有参数的那个应该叫重构函数 用于a和b 的初始化
都在这句里

complex a(15,16),b(30,31),c;

另外 只有在函数名和类名相同时才能称为构造函数和重构函数