C++ friend关键字

  友元:友元函数 友元类。

  友元函数:不属于任何类,只是在类中声明一下(可以放在 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++运算符重载用到的。

  

posted on 2016-06-17 01:11  暴力的轮胎  阅读(418)  评论(0编辑  收藏  举报

导航