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

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

  • 定义

友元提供了一种 普通函数或者类成员函数 访问另一个类中的私有或保护成员的机制。

优点:可以访问类的私有成员

缺点:破坏了类的封装性

  • 使用场景

当两个类之间深度耦合,A类需要访问B类的私有成员变量此时有以下几种方法

  1. 方法一:将B的私有成员变量改为public属性,但这明显不合理,要求是只想让A可以访问到
  2. 方法二:给每个成员加一个set和get方法,不好的地方变相的把私有成员变成了公有,set和get的方法代码量也不小
  3. 方法三:将A声明为B的友元类

三种方法可以看出第三种会更符合要求一点

  • 代码示例

#include<iostream>
#include<string>
using namespace std;
class person;
class dog{
    private:
        string behav;
    public:
    friend class person;
        dog(){
            behav = "跑步";
        }   
};

class person{
    private:
        dog *m_dog;
    public:
        person() {
            m_dog =  new dog();
        }
        void per_behav() {
            cout<<"遛狗 dog"<<m_dog->behav;
        }
};

int main() {
    person p;
    p.per_behav();
    return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值