C++ 类成员函数作为友元函数
是的,C++ 中可以使用一个类的成员函数作为另一个类的友元函数。在声明友元函数时,可以将另一个类的成员函数声明为友元函数,并在该成员函数中访问另一个类的私有成员。要实现这个功能,需要在友元函数声明中指定友元类的名称,然后在该类中声明该函数为友元函数。例如:
class ClassB; // 前向声明
class ClassA {
public:
void friendFunc(ClassB& b); // 友元函数声明
};
class ClassB {
private:
int privateVar;
public:
ClassB(int var) : privateVar(var) {}
friend void ClassA::friendFunc(ClassB& b); // 友元函数定义
};
void ClassA::friendFunc(ClassB& b) {
// 在这里可以访问ClassB的私有成员
std::cout << 'Value of privateVar in ClassB: ' << b.privateVar << std::endl;
}
int main() {
ClassB bObj(42);
ClassA aObj;
aObj.friendFunc(bObj); // 调用友元函数
return 0;
}
在上面的示例中,ClassA 中的 friendFunc() 函数被声明为 ClassB 的友元函数。在 friendFunc() 函数中,可以直接访问 ClassB 的 privateVar 私有成员。在 main() 函数中,创建了一个 ClassB 对象和一个 ClassA 对象,并通过调用 aObj.friendFunc(bObj) 来调用友元函数。输出将是'Value of privateVar in ClassB: 42'。
原文地址: https://www.cveoy.top/t/topic/wBu 著作权归作者所有。请勿转载和采集!