2015-06-09 3 views
0

я хочу использовать unique_ptr для QMenu без его как ребенок базового виджета таким образом я объявил его как этотиспользование unique_ptr в квартах переменного члена

private: 
std::unique_ptr<QMenu> m_pMenu; 

и в конструкторе

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

я также добавил CONFIG + = C++ 11 в моем файле .pro но при компиляции unique_ptr возвращается сообщение об ошибке, как недопустимого применения «SizeOf» неполного типа «QMenu»

ответ

0

Повторяющееся определение. Кроме того, вы можете сделать это таким образом, в C++ 11:

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

Что вы имеете в виду под «дубликата Defintion»? – cmannett85

+0

вы не должны смешивать 'new' и' unique_ptr'. Для создания меню используйте 'std :: make_unique'. –

+0

make_unique - это функция C++ 14, а не C++ 11. – UndeadDragon

Смежные вопросы