友元

一个类的友元函数可以访问该类的私有成员

class CCar; //提前声明 CCar类, 以便后面CDriver类使用
class CDriver {
public:
   void ModifyCar( CCar * pCar) ; //改装汽车
};
class CCar {
 private:
   int price;
   friend int MostExpensiveCar( CCar cars[], int total); //声明友元
   friend void CDriver::ModifyCar(CCar * pCar); //声明友元
}; 

void CDriver::ModifyCar( CCar * pCar)
{
  pCar->price += 1000; //汽车改装后价值增加
}
int MostExpensiveCar( CCar cars[], int total) //求最贵汽车的价格
{
  int tmpMax = -1;
  for( int i = 0; i < total; ++i )
     if( cars[i].price > tmpMax)
       tmpMax = cars[i].price;
  return tmpMax;
}
int main()
{
  return 0;
}

将一个类的成员函数(包括构造, 析构函数)
->另一个类的友元

class B {
 public:
 void function();
};
class A {
 friend void B::function();
};

A是B的友元类 ->A的成员函数可以访问B的私有成员

class CCar {
   private:
   int price;
   friend class CDriver; //声明CDriver为友元类
};
class CDriver {
public:
   CCar myCar;
   void ModifyCar() { //改装汽车
   myCar.price += 1000; // CDriver是CCar的友元类可以访问其私有成员
 }
};
int main() { return 0; } 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转:关于C++中的友元函数的总结 1.友元函数的简单介绍 1.1为什么要使用友元函数 在实现类之间数据共享时,减少...
    资深小夏阅读 4,090评论 0 0
  • 因为后续准备入职的公司都希望能转C++,所以最近也是按部就班的开始进行C++的学习。然后这个系列的文章打算探究C+...
    LeeHappen阅读 3,635评论 0 4
  • (1).友元函数为了实现类之间数据共享时,减少系统开销,提高效率。允许外面的类或函数去访问类的私有变量和保护变量,...
    Wangcy阅读 4,671评论 0 0
  • 采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间...
    cuagain阅读 3,582评论 0 4
  • 随机播放张信哲的过火旋律响起的一刹那就开始鼻子酸了,我知道没有理由,可喉咙依旧极致难受。 瞬间的思绪和潮水一样,可...
    洛尘埃阅读 3,207评论 0 1

友情链接更多精彩内容