我确信此类问题之前已被提及(并已回答),所以如果是这样,请将我与之前的讨论联系起来......
在C ++中,假设我有一个ClassA类型的对象,它包含一个ClassB类型的私有成员变量对象。我如何在 ClassB中调用对ClassA对象的引用?
我正在使用观察者设计模式,其中ClassA对象是'主题',ClassB中的对象,比如类型ClassC,是ClassA对象的“观察者”。因此,当在ClassB中初始化对象ClassC时,其参数之一需要是对其“主题”对象的引用。
答案 0 :(得分:1)
简言之:
struct A;
struct B : C {
B(A &a) : c(a) { }
C c;
};
struct A {
A() : b(*this) { }
private:
B b;
};
B因为是会员而无法获得对A的特殊访问权限。您必须明确传递参考。