友元全局函数以及友元成员函数
关键字: friend
class A{ //友元全局函数 friend void printXY(A & a); //友元成员函数,是B的成员函数 friend void B::printXY(A & a); public: A(int a,int b){} private: int m_a; int m_b; }; class B{ public: void printXY(A & a){ cout<< a.m_a<<endl; cout<< a.m_b<<endl; } } int main(){ void printXY(A & a){ cout<< a.m_a<<endl; cout<< a.m_b<<endl; }
友元函数的作用:可以通过全局函数或者其他类的成员函数,访问类中的私有成员变量。
友元类
//声明一下A类 class A; //定义友元类 class B{ friend A; public: B(int x, int y){} private: int _x; int _y; }; class A{ public: void printXY(){ cout<<b._x<<b._y<<endl; } private: B b; };
通过友元类可以直接访问友元类中的私有成员变量
关于友元的注意事项
- 友元关系不可传递
- 友元关系的单向性
- 友元的申明的形式以及数量不受限制
- 友元是封装的一种补充,是不得已而为之的,不是一种很好的语法
原文地址:https://www.cnblogs.com/geooeg/p/9650448.html
时间: 2024-10-08 21:25:06