下面的例子说明了如何算术运算符重载:
#include<iostream>
using namespace std;
class A{
public:
A(int _a = 0):aa(_a){}
void print();
friend const A operator+(const A &a,const A &b);
const A operator-(const A &a);
private:
int aa;
};
void A::print(){
cout<<aa<<endl;
}
const A operator+(const A &a,const A &b){
return (a.aa + b.aa);
}
const A A::operator-(const A &a){
return (a.aa-(*this).aa);
}
int main(){
A a(20);
A b(10);
A c;
A d;
c = a+b;
d = a-b;
c.print();
d.print();
}
算术运算符的重载能够友元和成员函数,上面两种都写出来了,加减乘除都是一样的。
算数操作符的重载,通常使用友元函数。
但是,也可以被定义为成员函数!不是必须用友元。
则操作数为1个,看起来不对称!!