0

在最基本的层面上,我需要一个类的方法来访问另一个类的私有数据,例如:

富.h:

class foo{
    void method( void );
}

酒吧.h:

class bar{
   friend void foo::method( void );
}

但是,方法需要知道要访问哪个对象,使其看起来更像这样:

富.h:

class foo{
    void method(bar* point);
}

酒吧.h:

class bar{
    friend void foo::method(bar* point);
}

然而,正如你所看到的,这给出了循环依赖:bar 需要 foo.h 来声明朋友,而 foo 需要 bar.h 因为它使用 bar 指针。该方法如何知道要访问哪个对象?

4

1 回答 1

3

如果您发现自己处于循环依赖中,最好检查一次您的设计。一旦你回顾了设计,如果你仍然觉得需要循环依赖,你需要使用类的前向声明

class bar;
class foo
{
    void method(bar* point);
}

好读:
我什么时候可以使用前向声明?

于 2013-04-29T15:40:10.117 回答