在C++中,友元函数(friend function)是一种非成员函数,它可以访问类的私有(private)和保护(protected)成员。如果你想让一个友元函数处理多个类,你可以将这个函数声明为这两个类的友元。这里有一个例子:
#include <iostream> class ClassA { public: ClassA(int value) : value_(value) {} friend void printValue(const ClassA& obj); private: int value_; }; class ClassB { public: ClassB(int value) : value_(value) {} friend void printValue(const ClassB& obj); private: int value_; }; void printValue(const ClassA& obj) { std::cout << "ClassA value: " << obj.value_ << std::endl; } void printValue(const ClassB& obj) { std::cout << "ClassB value: " << obj.value_ << std::endl; } int main() { ClassA a(10); ClassB b(20); printValue(a); // 输出:ClassA value: 10 printValue(b); // 输出:ClassB value: 20 return 0; }
在这个例子中,我们定义了两个类ClassA
和ClassB
,它们都有一个私有成员变量value_
。我们创建了两个友元函数printValue
,分别用于打印ClassA
和ClassB
的值。这样,我们就可以使用同一个友元函数来处理多个类。