错误:“预期类型说明符”[关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误:“预期类型说明符”[关闭]相关的知识,希望对你有一定的参考价值。
我收到此错误,我不知道为什么在尝试创建新的对象指针时。
这是我的标题类的代码
#ifndef CURSOR_H_INCLUDED
#define CURSOR_H_INCLUDED
#include <SFMLGraphics.hpp>
#Include "Mango.h"
#include <stack>
using namespace sf;
using namespace std;
struct cursor{
Texture tCursor;
Sprite sCursor;
stack<Mango*> inv;
float money;
void Sell();
cursor();
~cursor();
};
#endif CURSOR_H_INCLUDED
并且主要是尝试这样做
cursor * cursor = new cursor();
但它给了我这个错误。
答案
您已将指针命名为与类名相同的名称。你做不到:
struct Foo {int a;};
int main()
{
Foo* Foo = new Foo(); // Because
// After here ^^^ Foo is no longer a type but a variable. And you can't "new"
// a variable. Thanks to user4581301 for teaching me this.
return 0;
}
在:
cursor * cursor = new cursor();
^^^^^^
将指针名称从光标更改为其他名称。
附:有趣的是,感谢user4581301我知道变量CAN与用户定义的类型具有相同的名称,但显然是个坏主意。所以:
Foo Foo; // Fine
Foo.a = 7; // Fine
Foo newFooObj; // Doesn't make sense, Foo is no longer seen as a type
以上是关于错误:“预期类型说明符”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章