知识梗概
1.一个简单的实例-“+”实现负数相加
2.运算符重载函数:类成员函数和友元函数的区别
正文
1.一个简单的实例-“+”实现负数相加
//“+”实现复数的加法
#include<iostream>
using namespace std;
class Complex{
public:
Complex(){
real = 0;imag = 0;
}
Complex(double real,double imag){
this->real = real;
this->imag = imag;
} //定义构造函数
Complex operator + (Complex &c2); //声明运算符重载,返回对象:Complex
void display();
private:
double real;
double imag;
};
Complex Complex::operator + (Complex &c2){
return Complex(real+c2.real,imag+c2.imag); //返回临时对象
}
void Complex::display(){
cout<<"(real,image)="<<"("<<real<<","<<imag<<")"<<endl;
}
int main(){
Complex c1(3.0,4.0),c2(1,2),c3,c4;
c3 = c1+c2; //运行机制:c2为形参,“+”由c1调用,c1.operator+(c2)
c4 = c1.operator +(c2); //等同于上一行
cout<<"c3=";c3.display();
cout<<"c4=";c4.display();
return 0;
}