【发布时间】:2013-12-10 21:30:04
【问题描述】:
好的,我理解前向声明,但在这种情况下我需要在两端调用成员/字段,所以我不能使用它。我试图覆盖 .cpp 文件中的声明(通过包含我需要使用的类的实际标头),但是当我尝试使用它时,我通过前向声明在标头中定义的指针被破坏了。
我该如何解决这个问题?需要代码吗?
【问题讨论】:
-
您描述的相互依赖关系表明存在设计缺陷。重新审视您的设计并消除这两种类型之间的紧密耦合。
-
SSCCE 会很可爱...sscce.org
-
好吧,我有一个事件系统。我还有一个 A 类,它包含 B 类对象的指针,并管理该对象。现在我想让 B 类发送事件,包含指向 A 类的指针。因此所有类都需要相互了解(除了 Event 类,它只需要知道 A 类)
-
B 类不需要知道 A 类的类型就可以向它发送事件。使用依赖注入。使 Class A 派生自一个名为“EventReceiver”的类,然后将指向 EventReceiver 的指针存储在 Class B 中。参见the Observer pattern
-
事件不是由A或B处理的。B类需要知道“事件”。 “事件”需要知道 A 类。A 类需要知道 B 类。
标签: c++ dependencies