容器的元素如何访问其容器的"owner"?

How can an element of a container access its container's "owner"?

本文关键字:owner 元素 何访问 访问      更新时间:2023-10-16

>我有这个架构:(简化)

class A {
container<B*> c
}
class B {
A* owner
}

这些类位于不同的头文件中,对于此体系结构,我必须包括:

  • 在A.H.h的B.h
  • 啊,在波赫

啊,我得到了循环依赖。我可以通过前向声明来解决这个问题,但我想解决设计问题。(如果可能的话。

A 容器中的 B-s 如何在没有前向声明的情况下访问 A?

还是前向申报是唯一的方法?

  1. 使用前向声明。这限制了您避免访问内联函数(在标头中)中的类成员,但这适用于指针。

  2. 使用模板设计

  3. 使用共享基类,该基类具有所需的所有接口。

你说:

这些类位于不同的头文件中,对于此体系结构,我必须包括:

  • 在A.H.h的B.h
  • 啊,在波赫

不,你没有。

前向声明就足够了,因为您在 A.h 中使用B*,在 B.h 中使用A*

class B;
class A {
container<B*> c
}

B.h

class A;
class B {
A* owner
}