代码非常简单(但是我是新手,所以我不知道自己在做什么错):
#include<iostream>
#include<string>
void PrintEntity(Entity* e);
class Entity
{
public:
int x,y;
Entity(int x, int y)
{
Entity* e= this;
e-> x=x;
this->y=y;
PrintEntity(this);
}
};
void PrintEntity(Entity* e)
{
// *Do stuff*
}
int main()
{
return 0;
}
我对错误的理解是,我无法在声明之前声明函数PrintEntity
类Entity。但是即使我在类下声明该函数,也将是一个问题,因为在构造函数中,我正在调用函数PrintEntity。
所以我很困。有人可以向我解释我做错了吗?
最佳答案
在类定义之前声明函数,例如
void PrintEntity( class Entity* e);
使用详细的类型说明符。
否则,编译器将不知道
Entity
是什么。