我有两个类存在循环依赖问题:
- A有一个B类的成员变量
- B 是
vector<A>
的子类
我最初是这样解决的:
嗯:
#include "B.h"
class A
{
B b;
}
B.h:
class A;
class B : public vector<A>
{
}
#include "A.h"
不幸的是,如果在 Windows 上导出 A 和 B,MSVC 在构造 B 时会因为没有完整的 A 定义而窒息。
为了解决这个问题,我需要在 A 中存储一个指向 B 的指针。我想要一个包装器,类似于 boost::scoped_ptr,但它在其构造函数中创建了一个新对象,并且具有与它指向的对象。这将采用以下形式:
嗯:
class B;
class A
{
magic_ptr<B> b;
}
B.h:
#include "A.h"
class B : public vector<A>
{
}
在我重新发明轮子之前,有谁知道这是否已经存在于 STL 或 boost 中?
最佳答案
您尝试查找的是 boost::shared_ptr 吗?
关于c++ - 如果它是成员变量,是否有可以包装成员指针的 boost 或 STL 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6947538/