C++全局函数做友元 - 让你的代码更加灵活
在 C++ 中,友元是一个很有用的概念。它允许类中的特定函数或类可以访问其它类的私有成员变量或成员函数。但是,有时候我们需要在类之外定义一些函数,并让这些函数可以访问类的私有成员,那么怎么办呢?这时候就需要用到全局函数做友元的方法。
首先,我们来看一个例子,展示如何使用全局函数做友元。
class A {
private:
int privateData;
public:
A() {
privateData = 5;
}
friend void globalFunction(A&);
};
void globalFunction(A& obj) {
std::cout << "Accessing private data of A from global function: "
<< obj.privateData << std::endl;
}
int main() {
A objA;
globalFunction(objA);
return 0;
}
在上面的代码中,我们定义了一个类 A,其中包含了一个私有成员变量 privateData
。同时,我们也定义了一个全局函数 globalFunction
,并将它声明为 A 类的友元。在全局函数中,我们可以访问 A 类的私有成员变量 privateData
,因为这个函数是 A 类的友