在qt成员变量中使用unique_ptr

时间:2015-06-09 07:57:01

标签: c++ qt smart-pointers

我想将unique_ptr用于QMenu,而不是将它作为基本小部件的子代,所以我已经将它声明为这样

private:
std::unique_ptr<QMenu> m_pMenu;

并在构造函数

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

我还补充道 我的.pro文件中的CONFIG + = c ++ 11 但是在编译unique_ptr时会返回错误 'sizeof'无法应用于不完整类型'QMenu'

1 个答案:

答案 0 :(得分:0)

重复定义。 此外,您可以在C ++ 11中以这种方式执行此操作:

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