已声明“未命名类型”错误

Posted

技术标签:

【中文标题】已声明“未命名类型”错误【英文标题】:"Does not name a type" error while having been already declared 【发布时间】:2020-05-26 21:56:24 【问题描述】:

我已经启动了这个蛇控制台游戏,但我收到了这个错误:

错误:snakeVector 没有命名类型

ma​​in.cpp:

#include <iostream>
#include <stdlib.h>
#include <vector>

using namespace std;

///Dimensions of the box
short xDimension = 40;
short yDimension = 15;

///A vector with coordinates of snake's body
vector < pair <short, short> > snakeVector;///This is weird because I have declared this already here

///Co-ordinates of snake's head
pair <short,short> head = make_pair(12,8);

///Initialize snake
snakeVector.push_back(head);//These get me an error
snakeVector.push_back(make_pair(11,8));
snakeVector.push_back(make_pair(10,8));

有什么问题?

【问题讨论】:

这段代码是否在函数之外? UnholySheep 是的。在定义方法和main 函数之前,它在main.cpp 你不能在文件范围内调用函数(例如push_back)——这就是你得到错误的原因。只需将这些行移至main 错误和你的计数器没有矛盾。您声明snakeVector 是正确的;如果你没有错误将是关于一个无法识别的标识符。编译器是正确的,snakeVector 没有命名类型;你声明它是一个变量 这能回答你的问题吗? Does not name a type 【参考方案1】:

我在函数中添加了带有错误的行并解决了问题。

【讨论】:

以上是关于已声明“未命名类型”错误的主要内容,如果未能解决你的问题,请参考以下文章

命名类型和未命名类型和基础类型

命名类型和未命名类型和基础类型

[Journey with golang] 3. Type system

当我的代码超出函数范围时,为啥会出现编译器错误“未命名类型”?

C++ 错误:“unordered_map”未命名类型

错误:未命名类型,将指向类的指针设置为 0