首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未编译的QAction向量

未编译的QAction向量
EN

Stack Overflow用户
提问于 2017-09-26 10:30:16
回答 1查看 112关注 0票数 0

我想要创建一个QAction对象的向量,并编写了以下代码:

代码语言:javascript
复制
std::vector<QAction> test;
for (quint16 tt = 0; tt < 5; tt++)
{
   test.push_back(QAction(this));
}

编译这段代码将显示错误:

错误C2248:'QAction::QAction‘:无法访问类'QAction’中声明的私有成员

但是,如果我创建这样一个QAction对象,它可以正常工作:

代码语言:javascript
复制
QAction test2(this);

有人能指出我代码中的错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-26 10:35:01

QAction继承QObject,因此是不可复制的。std::vector所需的复制构造函数是私有的,不可访问。

第二种方案之所以有效,是因为不涉及复制。

使用std::vector<QAction *>new QAction(this)代替。或者您可以使用QList<QAction>,因为在内部它将隐式地使用指针。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46423998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档