【问题标题】:C++ expected constructor, destructor, or type conversion before '(' token'(' 标记之前的 C++ 预期构造函数、析构函数或类型转换
【发布时间】:2012-02-25 20:26:02
【问题描述】:

我知道您可能会将这篇文章视为另一个重复,但事实并非如此。这不是重复的,因为我的代码与其他代码不同,并且没有其他人的帖子(我见过)解决了我的问题。

这是我的代码:

#include "sprite.h"

SDL_Surface * SPRITE::screen;
int player;
void DrawPlayer(int x, int y) {
    SDL_Rect rect = {x,y,20,20};
    SDL_FillRect(SPRITE::screen, &rect, 0x00CC00);
}
DrawPlayer(20,20);

错误在线DrawPlayer(20,20);

【问题讨论】:

  • 你在哪一行得到错误?
  • 对不起,我会编辑原帖。
  • 为什么要由来决定这是否是重复的?重复并不意味着您的代码或问题的措辞完全相同,而是解决相同的问题
  • 你知道不能在函数外调用函数吧?
  • ....aa现在它是关于同一问题的一百万个问题的重复。

标签: c++ constructor sdl destructor


【解决方案1】:

您没有在任何函数中调用DrawPlayer()

【讨论】:

    【解决方案2】:

    您不能在任何方法之外致电DrawPlayer。调用必须在类方法或全局方法内。

    【讨论】:

      【解决方案3】:
      Try this:
      
      #include "sprite.h"
      
      SDL_Surface * SPRITE::screen;
      int player;
      void DrawPlayer(int x, int y) {
          SDL_Rect rect = {x,y,20,20};
          SDL_FillRect(SPRITE::screen, &rect, 0x00CC00);
      }
      
      int main()
      {
          DrawPlayer(20,20);
          return 0;
      }
      

      【讨论】:

        【解决方案4】:

        DrawPlayer 需要在main 或其他函数中。

        【讨论】:

          【解决方案5】:

          不在函数体中时如何调用函数?

          【讨论】:

            猜你喜欢
            • 2011-12-04
            • 2010-12-12
            • 2011-06-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多