0

我是使用 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 类的朋友类?

4

1 回答 1

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

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

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

于 2015-06-11T04:10:26.267 回答