为什么要使用友元类
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的友元类。