为什么要使用友元类
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的友元类。
友元类在C++中的应用与理解
本文探讨了C++中的友元类概念,解释了为何要使用友元类来实现类之间的特殊访问权限。通过示例展示了如何声明和使用友元类,使得友元类能够直接访问另一类的私有或保护成员,从而实现特定的功能需求,如ComputerServer类对Computer类的数据成员的直接操作。同时,也提及了FaceAlignment类对其友元类FaceInst的友元关系。
1553

被折叠的 条评论
为什么被折叠?



