容器的元素如何访问其容器的"owner"?
How can an element of a container access its container's "owner"?
>我有这个架构:(简化)
class A {
container<B*> c
}
class B {
A* owner
}
这些类位于不同的头文件中,对于此体系结构,我必须包括:
- 在A.H.h的B.h
- 啊,在波赫
啊,我得到了循环依赖。我可以通过前向声明来解决这个问题,但我想解决设计问题。(如果可能的话。
A 容器中的 B-s 如何在没有前向声明的情况下访问 A?
还是前向申报是唯一的方法?
-
使用前向声明。这限制了您避免访问内联函数(在标头中)中的类成员,但这适用于指针。
-
使用模板设计
-
使用共享基类,该基类具有所需的所有接口。
你说:
这些类位于不同的头文件中,对于此体系结构,我必须包括:
- 在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
}
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 使用函数"remove"删除重复元素
- 具有最大子序列大小的序列,每个元素都相同
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 如何将元素添加到数组的线程安全函数?
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- 我想访问std::unique_ptr中的一个特定元素
- 如何通过 getter 函数删除矢量的元素?
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 从控制台中删除最后打印的元素
- 容器的元素如何访问其容器的"owner"?