Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
3年前关闭。
我在这条线上有一个错误:
说:
没有匹配'operator []'(操作数类型为'Briques'和'int')...
我不明白为什么,因为
并且
任何帮助,将不胜感激。我认为该错误意味着类
另外,如果您需要更多有关某些内容的代码,请告诉我,这是新的! :D
避免在代码中出现名称冲突。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
3年前关闭。
我在这条线上有一个错误:
Briques brique = brique[i][j];
说:
没有匹配'operator []'(操作数类型为'Briques'和'int')...
我不明白为什么,因为
Briques
是Table.h
中定义的类:class Briques {
public:
int type;
bool state;
};
并且
Table.h
得到了:Briques brique[BOARD_WIDTH][BOARD_HEIGHT];
任何帮助,将不胜感激。我认为该错误意味着类
Briques
不考虑数组?或类似的东西...但是我无法解决问题。另外,如果您需要更多有关某些内容的代码,请告诉我,这是新的! :D
最佳答案
您的代码Briques brique = brique[i][j];
不是您想要的。
您想声明从外部作用域中的另一个变量brique
初始化的变量brique
,但是编译器首先在作用域中寻找最接近的变量进行初始化。
因为您在本地作用域(您要声明的变量)中有一个名为brique
的变量,所以它用于初始化,但是您要声明的本地brique
的类型为Briques
(与您想要的变量不同) (类型为Brique[][]
),并且实际上没有声明operator[]
。
只需更改您的声明:
Briques b = brique[i][j];
避免在代码中出现名称冲突。
09-04 07:52