在最基本的层面上,我需要一个类的方法来访问另一个类的私有(private)数据,例如:
foo.h:
class foo{
void method( void );
}
bar.h:
class bar{
friend void foo::method( void );
}
但是,方法需要知道要访问哪个对象,使其看起来更像这样:
foo.h:
class foo{
void method(bar* point);
}
bar.h:
class bar{
friend void foo::method(bar* point);
}
但是,如您所见,这提供了循环依赖性:bar 需要 foo.h 来声明 friend ,而 foo 需要 bar.h,因为它使用 bar 指针。该方法还如何知道要访问哪个对象?
最佳答案
如果您发现自己处于循环依赖中,最好检查一次您的设计。一旦您审查了设计并且您仍然觉得需要循环依赖,您需要使用该类的前向声明。
class bar;
class foo
{
void method(bar* point);
}
关于c++ - 解决友元类的循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16282498/