问题描述
我有一个带有前向声明类的标头,我想在其中声明一些智能指针成员。但是,由于智能指针模板类型在声明时在技术上是不完整的,因此我收到有关sizeof无法执行的编译错误用于唯一指针。我是否必须将实现标头放入类的标头中,而不是前向声明它们,还是可以向我的前向声明提供一个满足智能指针的附加存根?
例如,这是头文件:
#include <memory>
namespace N {
class A;
class Owner {
std::unique_ptr<A> myMember;
}
}
这是源文件:
#include "A.H"
class Owner{
Owner() {
myMember = std::make_unique<A>("arg1","arg2");
}
}
我宁愿不向包含头文件的所有人提供依赖关系,这就是为什么在我使用原始指针时最初对类进行前向声明的原因。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)