在函数参数中创建友元类实例

Creating Friend Class instance in Function parameters

本文关键字:友元 实例 创建 函数 参数      更新时间:2023-10-16

我是C++的新手。我需要将一个类的实例声明为另一个类中函数的参数,并将参数实例声明为友元。我用一个例子来说明。

class foo(){
    private:
        void a(){
          // function definition
                }
}
class other_foo(){
    public:
         void b(foo f){
             // function definition
                 }
}

在上面的例子中,我需要将类other_foo声明为 foo 的朋友,以便我可以使用 foo 类的私有函数"a"。我已经阅读了许多其他参考资料,但没有关于它是否真的可能的明确指南。如果没有,您能提出解决方法吗?我试图在类 foo 定义中将other_foo声明为朋友,但编译器抛出了一个错误,other_foo私有方法无法访问。我还尝试在参数本身中将实例声明为"friend foo f",但编译器为此抛出了一个错误。我实际上需要在哪里声明类other_foo是类 foo 的友元类?

class foo{
private:
    void a(){
      // function definition
    }
    friend class other_foo;
};
class other_foo{
public:
     void b(foo f){
         // function definition
     }
};

现在other_foo可以访问foo的私人成员。类名前面的括号是不必要的,;类定义之后添加。