代码非常简单(但是我是新手,所以我不知道自己在做什么错):

#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是什么。

09-27 08:42