访问私有变量:友元函数、友元类 | 您所在的位置:网站首页 › 静态私有变量如何访问 › 访问私有变量:友元函数、友元类 |
转自:友元函数、友元类、访问私有数据成员、友元关系[C++]:https://www.cnblogs.com/JCSU/articles/1044346.html 一 友元函数(friend function) 1. 什么是友元函数? 一个类的私有数据成员通常只能由类的函数成员来访问,而友元函数可以访问类的私有数据成员,也能访问其保护成员 2. 友元函数的用处体现在哪里? 2.1 使用友元函数可提高性能,如:用友元函数重载操作符和生成迭代器类 2.2 用友元函数可以访问两个或多个类的私有数据,较其它方法使人们更容易理解程序的逻辑关系 3. 使用友元函数前应注意: 3.1 类的友元函数在类作用域之外定义,但可以访问类的私有和保护成员 3.2 尽管类定义中有友元函数原型,友元函数仍然不是成员函数 3.3 由于友元函数不是任何类的成员函数,所以不能用句柄(对象)加点操作符来调用 3.4 public, private, protected成员访问符与友员关系的声明无关,因此友元关系声明可在类定义的任何位置,习惯上在类定义的 开始位置 3.5 友元关系是指定的,不是获取的,如果让类B成为类A的友元类,类A必须显式声明类B为自己的友元类 3.6 友元关系不满足对称性和传递性 3.7 如果一个友元函数想与两个或更多类成为友元关系,在每个类中都必须声明为友元函数 4. 注:由于C++属于混合语言,常在同一个程序中采用两种函数调用且这两种函数调用往往是相反的。类C语言的调用将 基本数据或对象传递给函数,C++调用则是将函数(或信息)传递给对象 实例1. 友元函数的声明、定义与使用 #include using namespace std; class Car { friend void display(Car); //类"Car"的朋友display() //友元函数的声明 private: int speed; char color[20]; public: void input( ) { coutcolor; coutspeed; } }; void display(Car x) //友元函数的定义 { cout |
CopyRight 2018-2019 实验室设备网 版权所有 |