Я пытаюсь инициализировать одномерный массив в качестве переменной-члена внутри класса, но я получаю сообщение об ошибке ожидается выражениеошибка: ожидается выражение, прежде чем {в C++
здесь объявление в файле tetris.h :
private:
int* rotate(char piece,int rot);
int width;
int* heights;
char* data[0];
const string blockkeys;
int *blocks;
};
и вот конструктор:
Tetris::Tetris(int w):blockkeys("IOJLZST"){
blocks = new int[7*4*2]={
0,0,0,1,0,2,0,3,
0,0,0,1,1,1,1,0,
0,0,1,0,1,1,1,2,
0,0,1,0,0,1,0,2,
0,0,1,0,0,1,-1,1,
0,0,1,0,1,1,2,1,
0,0,-1,1,1,1,2,1};
width=w;
heights=new int[width];
char *data[width];
for (unsigned int i=0; i<width; ++i){
data[i]=new char[0];
heights[i]=0;
}
}
ошибка сразу же происходит после того, как "новый INT [7 * 4 * 2] =" и перед "{"
блоки не являются массивом нулевой длины. –
@ DanG., Но 'данные' есть. – chris
'new int [7 * 4 * 2]' не является значением lvalue. Почему вы назначаете его? – chris