Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        3年前关闭。
                                                                                            
                
        
我在这条线上有一个错误:

Briques brique = brique[i][j];


说:


  没有匹配'operator []'(操作数类型为'Briques'和'int')...


我不明白为什么,因为BriquesTable.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