错误 C2059:尝试在已知大小的头文件中创建 Qt 容器时为"常量"
Error C2059 : 'constant' when trying to create a Qt container in a header file with known size
我正在使用Qt 4.8.5和Windows 7.0 SDK中的MSVC 2010编译器和调试器,并将Qt creator用作我的IDE。
以下语法工作正常:
class Device
{
public:
Device();
....
QVector<double> MyContainer;
....
protected:
....
}
,其中QContainer可以是QVector,QList...等,T 可以是任何类型。
但是以下语法被Qt创建者拒绝,并在尝试编译时显示"错误C2059":
class Device
{
public:
Device();
....
QVector<double> MyContainer(100);
....
protected:
....
}
我很困惑,因为文档说语法"QContainer = MyContainer(szie)"是合法的,但我的Qt创建者就是无法阅读,它告诉我有一个"意外的令牌'('"。
我做得很糟糕吗?
这是因为您正在尝试分配给类型。 QVector<double>
是一种类型,而不是变量声明或可以分配给的任何其他内容。这意味着这两个例子实际上是错误的。
我认为你的意思是声明成员变量MyContainer
,你应该使用
QVector<double> MyContainer;
若要将容器初始化为特定大小,必须使用构造函数初始值设定项列表:
Device()
: MyContainer(100)
{
...
}
有关初始值设定项列表的详细信息,请参阅本教程或参考。
相关文章:
- 如何使用QT创建器获取网页源代码?
- 在qt创建器中调试时如何访问字符串变量的完整值?
- 尝试使用 MSVC 从源代码构建 qt 创建器:无法打开包含文件:"stddef.h":没有这样的文件或目录
- Qt C++ 创建方形音频音调波.播放并保存它
- Qt C++创建一个所有类都可以访问的全局变量
- Qt5自定义QDialog,不使用qt创建器
- Qt 创建器:将库移动到 subdir 后无法打开共享对象文件
- Qt创建一个左箭头样式的按钮
- QT 创建器只会将第一个单词从文本编辑转换为纯文本
- 使用 c++ / QT 创建器从另一个类中设置和获取单例变量
- Qt 创建器在"Removing"库后给出错误
- Qt - 创建主窗口前的非模态对话框
- QT 创建器:程序启动时音量滑块仍播放音频
- Qt 创建程序 5.10 无法检索 MSVC 环境错误
- 无法编译QT创建快速应用程序项目
- 尝试在自定义 QT 创建器文本编辑器中创建查找和替换循环.我似乎无法设置光标位置
- Qt 创建器错误:找不到 -lopencv_imgcodecs
- Qt 创建器中的实用程序::转换::to_string_t中的链接错误
- 如何使用拖放功能和点击信号函数QT创建标签
- Qt C++ - 创建 QList<Myclass> - 不是参数 'T 的有效模板类型参数