#include <iostream>
using namespace std;
//实现运算符的重载
class A
{
public:
A(int real=0,int imaginary=0 )
{
this->real=real;
this->imaginary=imaginary;
}
void printf()
{
cout<<this->real<<" + "<<this->imaginary<<"j\n";
}
friend A operator+(A &a1,A &a2);//这里的友元函数是取决于私有属性
public:
A operator-(A &t1)//这个一定要表明类型的,因为这不是构造函数,所以必须有类型。
{
this->real=this->real-t1.real;
this->imaginary=this->imaginary-t1.imaginary;
return * this;
}
private:
int real;
int imaginary;
};
A operator+(A &a1,A &a2)
{
A tem(a1.real+a2.real , a1.imaginary+a2.imaginary);
return tem;
}
int main()
{
A c1(1,2), c2(3,4);
A c3;
c3=c1+c2;
c3.printf();
// A t1;
//c1.operator-(c2);
A c4 =c1-c2;
c4.printf();
system("pause");
return 0;
}
因为,类的成员变量一般是私有的,所以,类的外部除了友元函数其他函数都不能调用类的私有变量。