温馨提示×

C++友元函数如何处理多个类

c++
小樊
96
2024-11-09 00:59:28
栏目: 编程语言

在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; } 

在这个例子中,我们定义了两个类ClassAClassB,它们都有一个私有成员变量value_。我们创建了两个友元函数printValue,分别用于打印ClassAClassB的值。这样,我们就可以使用同一个友元函数来处理多个类。

0