友元函数和友元类

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;
};

通过友元类可以直接访问友元类中的私有成员变量

 关于友元的注意事项

  • 友元关系不可传递
  • 友元关系的单向性
  • 友元的申明的形式以及数量不受限制
  • 友元是封装的一种补充,是不得已而为之的,不是一种很好的语法

 

以上是关于友元函数和友元类的主要内容,如果未能解决你的问题,请参考以下文章

练习友元类和友元函数

C++基础语法梳理:友元类和友元函数以及using用法

什么是友元?为什么要引入友元?解释友元函数和友元类

友元函数都有哪些特点?

友元函数友元类.

C++_友元函数与友元类