码迷,mamicode.com
首页 > 编程语言 > 详细

C++ friend关键字

时间:2016-06-17 06:14:56      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

  友元:友元函数 友元类。

  友元函数:不属于任何类,只是在类中声明一下(可以放在 private 或者 public,没有区别),告诉这个类,这个函数是你的朋友,当然朋友不是白当的:这个函数可以访问你的私有成员变量! 毫无疑问,这破坏了类的封装性,可能出现安全问题,那又怎么样~ 毕竟还是朋友。

  友元类:相当于使友元类里面所有的函数都变成了另一个类的友元函数。

  例如,以下语句说明类B是类A的友元类:

class A{


public:
friend class B;

};
类B的所有成员函数都是类A的友元函数,能存取类A的私有成员和保护成员。

      使用友元类时注意:

 

  (1) 友元关系不能被继承。
 

  (2) 友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有相应的声明。

 

  (3) 友元关系不具有传递性。若类B是类A的友元,类C是B的友元,类C不一定是类A的友元,同样要看类中是否有相应的申明 

 

  (4) 友元函数并不是类的成员函数,因此在类外定义的时候不能加上class::function name

   突然学到这个是因为给帮弟弟写homework,c++运算符重载用到的。

  

C++ friend关键字

标签:

原文地址:http://www.cnblogs.com/luntai/p/5592649.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!