gpt4 book ai didi

c++ - QAction 的 vector 未编译

转载 作者:太空宇宙 更新时间:2023-11-04 16:00:08 26 4
gpt4 key购买 nike

我想创建一个 QAction 对象的 vector ,我编写了以下代码:

std::vector<QAction> test;
for (quint16 tt = 0; tt < 5; tt++)
{
test.push_back(QAction(this));
}

编译显示错误:

error C2248: 'QAction::QAction' : cannot access private member declared in class 'QAction'

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

QAction test2(this);

谁能指出我代码中的错误?

最佳答案

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

第二种情况可行,因为不涉及复制。

使用 std::vector<QAction *>new QAction(this)反而。或者你可以使用 QList<QAction>这会起作用,因为在内部它会隐式使用指针。

关于c++ - QAction 的 vector 未编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46423998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com