C++ '';不是类型c++;编译错误
我正在为任务编写一个小游戏,它需要使用地图,我已成功地将地图放入2d数组,但现在在任务中进一步工作,我发现我需要在另一个函数中访问数组地图[]。我试图让它工作,但失败了。我在g++中遇到的错误是“error:‘Map’不是一种类型”,如果您能提供任何帮助,我们将不胜感激 我已经搜索过了,但要么我在使用搜索引擎方面很糟糕,要么我找不到与此错误相关的任何内容C++ '';不是类型c++;编译错误,c++,compiler-errors,g++,C++,Compiler Errors,G++,我正在为任务编写一个小游戏,它需要使用地图,我已成功地将地图放入2d数组,但现在在任务中进一步工作,我发现我需要在另一个函数中访问数组地图[]。我试图让它工作,但失败了。我在g++中遇到的错误是“error:‘Map’不是一种类型”,如果您能提供任何帮助,我们将不胜感激 我已经搜索过了,但要么我在使用搜索引擎方面很糟糕,要么我找不到与此错误相关的任何内容 const int MapSZ = 10; //In Global int Map[MapSZ][MapSZ]; // Also Global
const int MapSZ = 10; //In Global
int Map[MapSZ][MapSZ]; // Also Global
void GetMap(ifstream&, int); //Getting the map (Proto)
GetMap(fin, Map[MapSZ][MapSZ]); //In the main function.
void GetMap(ifstream& fin, Map[MapSZ][MapSZ]) //Inserting the map into an array
应该是:
void GetMap(ifstream& fin, int Map[MapSZ][MapSZ])
^^^^
请注意,Map
是数组的名称,但您没有提到它的类型
应该是:
void GetMap(ifstream& fin, int Map[MapSZ][MapSZ])
^^^^
请注意,
Map
是数组的名称,但您没有提到它的类型 如果Map[MapSZ][MapSZ]
被定义为全局,正如您的注释所述(即它是在main.cpp
中定义的,但在主函数之外),则无需将其作为参数传递给GetMap
。你可以做一些简单的事情,比如
void GetMap(ifstream& fin); //proto
int main(int argc, const char * argv[]) {
GetMap(fin);
}
void GetMap(ifstream& fin) {
//some code that uses Map[MapSZ][MapSZ]
}
如果
Map[MapSZ][MapSZ]
被定义为全局,正如您的注释所述(即它是在main.cpp
中定义的,但在主函数之外),则无需将其作为参数传递给GetMap
。你可以做一些简单的事情,比如
void GetMap(ifstream& fin); //proto
int main(int argc, const char * argv[]) {
GetMap(fin);
}
void GetMap(ifstream& fin) {
//some code that uses Map[MapSZ][MapSZ]
}
那
GetMap
将与早期的GetMap
原型不兼容。我不认为这里需要重载。谢谢,我输入了“int”,但现在我得到了一个看起来很奇怪的编译错误“/tmp/cc5xDEOL.o:in functionmain”:P1P2.cpp:(.text+0x65):对
GetMap(std::basic\u ifstream&,int)“collect2:ld返回了1个退出状态”@Joey函数调用传递了一个int,不是整个地图
。正确的声明应该是void GetMap(ifstream&fin,int-maplement)
,因为函数不知道整个映射。最好从函数定义复制原型,而不是从调用站点复制原型。编辑:等等,你已经有了一个正确的原型。“将映射插入数组”行应该是什么?map
的类型是一个二维整数数组。@potatosatter该行后面是将数字输入数组的函数-请参见此处(int i=0;iGetMap
将与早期的GetMap
原型不兼容。我不认为这里需要重载。谢谢,我输入了“int”,但现在我得到了一个看起来很奇怪的编译错误“/tmp/cc5xDEOL.o:in functionmain”:P1P2.cpp:(.text+0x65):对
GetMap(std::basic\u ifstream&,int)“collect2:ld返回了1个退出状态”@Joey函数调用传递了一个int,不是整个地图
。正确的声明应该是void GetMap(ifstream&fin,int-maplement)
,因为函数不知道整个映射。最好从函数定义复制原型,而不是从调用站点复制原型。编辑:等等,你已经有了一个正确的原型。“将映射插入数组”行应该是什么?map
的类型是一个二维整数数组。@potatosatter该行后面是将数字输入数组的函数-请参见此处(int i=0;i