gpt4 book ai didi

对象之间的 C++ 通信

转载 作者:行者123 更新时间:2023-11-28 08:16:37 31 4
gpt4 key购买 nike

我确定之前已经有人问过(并回答过)此类问题,所以如果是这样,请将我链接到之前的讨论...

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

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

最佳答案

简要说明:

struct A;

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

C c;
};

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

private:
B b;
};

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

关于对象之间的 C++ 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7539667/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com