1.友员函数使用在,你需要一个函数具有访问类的私有成员,但是不想它成为这个类的成员函数,那么可以声明这个函数为类的友员函数 。
2.运算符重载为类的成员函数时,使用时,左边必须是这个类的对象,如果左边不是类的对象 ,那么是无法调用这个成员函数的,如果想左边不是一个对象就 调用 这个函数,那么
可以声明这个函数为类的友员函数
#include <iostream>
using namespace std;
class Complex
{
private:
int realValue;
int virtualValue;
public:
Complex(int r, int v)
{
realValue = r ;
virtualValue = v ;
}
//object+object
Complex operator + (const Complex &c1);
//object+i,but i+object is false
Complex operator + (const int i);
//i+object
friend Complex operator + (const int i,Complex &c1);
void display(){cout<<realValue<<","<<virtualValue<<endl;}
};
Complex Complex::operator + (const Complex &c1)
{
return Complex(realValue+c1.realValue,virtualValue+c1.virtualValue);
}
Complex Complex::operator + (const int i)
{
return Complex(realValue+i,virtualValue);
}
Complex operator + (const int i,Complex &c1)
{
return Complex(i+c1.realValue,c1.virtualValue);
}
int main()
{
Complex a(1,2);
Complex b(2,3);
Complex c = a+b;
Complex d = a+10;
Complex e = 10+a;
c.display();
d.display();
e.display();
return 0;
}