有两种方式实现操作符重载:类成员函数实现方法和友元函数实现方法
对于二元操作符,分别通过类成员函数和友元函数方法实现复数的加减
1.类成员函数实现
#include "iostream"
using namespace std;
class Complex
{
public:
Complex()
{
}
Complex(int a,int b)
{
this->a=a;
this->b=b;
}
private:
int a;
int b;
//通过类成员函数方法实现+运算符重载
public:
//函数原型
Complex operator+(Complex &S)
{
Complex temp;
temp.a=this->a+S.a;
temp.b=b+S.b;
return temp;
}
public:
void Cprint()
{
cout<<<"+"<<<"i"<
2.友元函数实现
要获取类中的私有变量,我们可以在类中定义该函数为friend
class Complex
{
public:
Complex()
{
}
Complex(int a,int b)
{
this->a=a;
this->b=b;
}
//定义operator-函数为friend
friend Complex operator-(Complex &T1,Complex &T2);
private:
int a;
int b;
public:
void Cprint()
{
cout<
<<"-"<<<"i"<
a = a + b; //int 是基础类型,编译器已经为这些类型提供+操作了。
c1 = c1 + c2; //c1是自定义类型 编译器根本不知道如何加,但是c++编译器会给你提供一个机制,让你实现自定义类型加