友元函数和友元类
Posted geooeg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了友元函数和友元类相关的知识,希望对你有一定的参考价值。
友元全局函数以及友元成员函数
关键字: 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; };
通过友元类可以直接访问友元类中的私有成员变量
关于友元的注意事项
- 友元关系不可传递
- 友元关系的单向性
- 友元的申明的形式以及数量不受限制
- 友元是封装的一种补充,是不得已而为之的,不是一种很好的语法
以上是关于友元函数和友元类的主要内容,如果未能解决你的问题,请参考以下文章