在最基本的层面上,我需要一个类中的方法来访问另一个类的私有数据,例如:
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来声明一个朋友,而foo需要bar.h,因为它使用一个条形指针。该方法如何知道要访问哪个对象?
答案 0 :(得分:2)
如果您发现自己处于循环依赖状态,最好一次检查您的设计。一旦您查看设计,如果您仍然感觉需要循环依赖,则需要使用该类的转发声明。
class bar;
class foo
{
void method(bar* point);
}