无法初始化静态QList?

2024-05-05

我收到以下错误:

Cube.cpp:10: error: expected initializer before ‘<<’ token

以下是头文件的重要部分:

#ifndef CUBE_H
#define CUBE_H

#include <cstdlib>
#include <QtCore/QtCore>
#include <iostream>

#define YELLOW 0
#define RED 1
#define GREEN 2
#define ORANGE 3
#define BLUE 4
#define WHITE 5

using namespace std;

class Cube {
public:
  ...
  static QList<int> colorList;
  ...
};
#endif

这是给出错误的行:

QList<int> Cube::colorList << YELLOW << RED << GREEN << ORANGE << BLUE << WHITE;

你不能用以下方式初始化一个对象<<. The =那通常是没有的operator=()-- 这是一种特殊的语法,本质上与调用构造函数相同。

像这样的东西可能会起作用

QList<int> Cube::colorList = EmptyList() << YELLOW << RED << GREEN << ORANGE << BLUE << WHITE;

其中 EmptyList() 是

QList<int> EmptyList()
{
   QList<int> list;
   return list;
}

并且是列表的副本构造,并且除非进行一些优化,否则是创建的列表的副本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法初始化静态QList? 的相关文章

随机推荐