C++如何使用友元类

本文探讨了C++中的友元类概念,解释了为何要使用友元类来实现类之间的特殊访问权限。通过示例展示了如何声明和使用友元类,使得友元类能够直接访问另一类的私有或保护成员,从而实现特定的功能需求,如ComputerServer类对Computer类的数据成员的直接操作。同时,也提及了FaceAlignment类对其友元类FaceInst的友元关系。
摘要由CSDN通过智能技术生成

为什么要使用友元类

ComputerServer类作为Computer类得友元类, 那么ComputerServer类的所有成员函数, 就可以直接访问对应类的所有数据成员

使用友元类,和友元函数时,使用friend关键字进行声明即可,与访问权限无关,可以写在private/public/protected任意权限内。

Computer类                          ComputerServer类
public:                             public:
friend class ComputerServer         setUpgrade()
                                    setCpuPower()
private:                            setCpuCore
cpu
cpuPower
cpuCore
#include <string>
#include "ComputerServer.h"

using namespace std;

class Computer{
public:
    Computer();
    
    //友元类, 此时都在ComputerServer类里
    //都可以访问Computer的所有数据
    friend class ComputerServer;
    
    void description();
private:
    string cpu; //cpu芯片
    int cpuPower; //cpu性能
    int cpuCore; //cpu内核
}

ComputerServer是Computer类的友元类, 都可以访问Computer的所有数据。

void ComputerServer::setUpgrade(Computer *computer)
{
   computer->cpu = 'i9';
}
class FaceAlignment: public FaceModule
{
public:
   FaceAlignment()
   {
      
   }
   ~FaceAlignment()
   {

   }
   friend class FaceInst;
}
FaceInst是FaceAlignment的友元类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值