友元分为友元函数和友元类两种
friend 返回值类型 函数名(参数);
friend 返回值类型 类名::函数名(参数);
可以把一个类的成员函数(包括构造、析构函数)说明为另一个类的友元
class CCar
{
private:
int price;
friend class CDrive;//声明CDriver为友元类
};
class CDriver
{
public:
CCar myCar;
void ModifyCar(){//改装汽车
myCar.price+=1000;//因CDriver是CCar的友元类,故此处可以访问其私有成员
};
int main(){return 0;}
complex_a+complex_b
生成新的复数对象5+4=9
返回值类型 operator 运算符(形参表)
{
...
}
class Complex
{
public:
double real,imag;
Complex (double r=0.0,doublei=0.0):real(r),imag(i){}
Complex operator - (const Complex & c);
};
Complex operator + (const Complex & a,const Complex & b)
{
return Complex(a.real+b.real,a.imag+b.imag);//返回一个临时对象
}
Complex Complex::operator - (const Complex & c)
{
return Complex(real-c.real,imag-c.imag);//返回一个临时对象
}
int main()
{
Complex a(4,4),b(1,1),c;
c=a+b;//等价于c=operator + (a,b)
cout<<c.real<<","<<c.imag<<endl;
cout<<(a-b).real<<","<<(a-b).imag<<endl;//a-b等价于a.operator - (b)
return 0;
}
5,5
3,3
原文:https://www.cnblogs.com/2002ljy/p/12271039.html