我有两个类有循环依赖问题:
vector<A>
的子类我最初是这样解决的:
啊:
#include "B.h"
class A
{
B b;
}
B.h:
class A;
class B : public vector<A>
{
}
#include "A.h"
不幸的是,如果A和B在Windows上导出,则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/