温馨提示×

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

c++
小樊
81
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