友元分为友元函数和友元类
1.友元函数:一个类的友元函数可以访问该类的私有成员。
class ccar; 提前声明ccar类,以便后面的cdriver类使用
calss cdriver
{
public:
void modifycar(ccar *pcar); //改装汽车 这里的ccar只是一个指针,如果
//是一个类的化,那么class ccar要写全
};
class ccar
{
private:
int price;
friend int mostexpensivecar(ccar cars[],int total); //声明友元
friend void cdriver::modifycar(ccar *pcar); //声明友元
};
void cdriver::modifycar(ccar *pcar)
{
pcar->pricc+=1000;
}
int mostexpensivecar(ccar cars[],int total)
{
int tmpmax=-1;
for(int i=0;i<total;++i)
if(car[i].price>tmpmax)
tmpmax=car[i].price;
return 0;
}
int main()
{
return 0;
}
2.友元类 如果A是B的友元类,那么A的成员函数可以访问B的私有成员。
class ccar
{
private:
int price;
friend class cdriver; //声明cdriver为友元类
};
class cdriver
{
public:
ccar mycar;
void moidfycar(){mycar.price+=1000;}//因为cdriver为ccar的友元类,故此处可以
//访问其私有成员
};
int main(){return 0;}