【问题标题】:C++ communication between objects对象之间的 C++ 通信
【发布时间】:2011-09-24 14:36:29
【问题描述】:

我敢肯定这种问题之前已经被问过(并得到了回答),所以如果是这样,请将我链接到之前的讨论......

在 C++ 中,假设我有一个 ClassA 类型的对象,其中包括一个 ClassB 类型的私有成员变量对象。我将如何去调用对 ClassA 对象的引用 within ClassB?

我正在使用观察者设计模式,其中 ClassA 对象是“主体”,而 ClassB 中的对象(例如 ClassC 类型)是 ClassA 对象的“观察者”。因此,在 ClassB 中初始化对象 ClassC 时,其参数之一需要是对其“主体”对象的引用。

【问题讨论】:

  • 为什么不直接通过 ClassA 的引用?
  • 把代码贴出来会更好理解。
  • @akappa 是的,这就是我需要做的。我想了很多。谢谢!

标签: c++ object observer-pattern


【解决方案1】:

简单地说:

struct A;

struct B : C {
  B(A &a) : c(a) { }

  C c;
};

struct A {
  A() : b(*this) { }

  private:
    B b;
};

B 不会因为 A 是成员而获得对 A 的特殊访问权。您必须显式传递引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多