是的,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'。

C++ 类成员函数作为友元函数

原文地址: https://www.cveoy.top/t/topic/wBu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录