在qt成员变量中使用unique_ptr



我想使用unique_ptr为QMenu而不使其作为基础小部件的子,所以我已经声明它像这样

private:
std::unique_ptr<QMenu> m_pMenu;

和构造函数

std::unique_ptr<QMenu> m_pMenu ( new QMenu());
m_pMenu->setObjectName("JobContextMenu");

i也添加了CONFIG += c++11在我的。pro文件但是在编译unique_ptr时返回一个错误对不完整类型'QMenu'无效应用'sizeof'

重复定义。在c++ 11中也可以这样做:

private:
std::unique_ptr<QMenu> m_pMenu = std::unique_ptr<QMenu>(new QMenu);

最新更新