C++友元
Guderian出品
本文整理自《北京大学公开课:C++面向对象程序设计》友元很简单,在某种程度上算作是C++设计者对C使用者的妥协。友元分为友元函数和友元类两种。
友元函数
一个类的友元函数可以访问该类的私有成员,友元函数不是这个类的成员函数,可以是一个普通的全局函数或其他类的成员函数
1 | class CCar; //提前声明CCar是一个类,以便后面的CDriver类使用 |
可以将一个类的成员函数(包括构造、析构函数)说明为另一个类的友元
1 | class B |
友元类
如果A
是B
的友元类,那么A
的所有成员函数可以访问B
的所有私有成员
1 | class CCar |
- 友元类之间的关系不能传递:类
A
是类B
的友元,类C
是类B
的友元,但类A
不是类C
的友元 - 友元类之间的关系不能继承