C++ C++;构造函数错误

C++ C++;构造函数错误,c++,sdl,C++,Sdl,我在下面的代码中遇到了以下错误:“表达式列表被视为复合表达式”。我找不出有什么问题 Shoot::Shoot() : io( IOManager::getInstance() ), count(0), locX(0), locY(0), objWidth(0), objHeight(0), clock( Clock::getInstance() ), ticks(0), bulletSurface(io.loadAndSet

我在下面的代码中遇到了以下错误:“表达式列表被视为复合表达式”。我找不出有什么问题

Shoot::Shoot() :
    io( IOManager::getInstance() ),
    count(0),
    locX(0),
    locY(0),
    objWidth(0),
    objHeight(0),
    clock( Clock::getInstance() ),
    ticks(0),
    bulletSurface(io.loadAndSet("images/bullet.bmp", true)), 
    bulletFrame(bulletSurface, 30, 30, 0, 0),
    thebullet(Vector2f(700,760), Vector2f(20,45), "bullet" , &bulletFrame)
           {

           }
声明:

    private :

          const IOManager& io;
          int count;

          int locX;
          int locY;
          unsigned objWidth;
          unsigned objHeight;
          Clock& clock; 
          unsigned ticks;
          SDL_Surface *bulletSurface;
          Frame bulletFrame;
          Sprite *thebullet;
          Shoot(const Shoot&);
          Shoot& operator=(const Shoot&);

问题是,
bullet
是一个指针,但您试图用
Vector2f(700760)、Vector2f(20,45)、“bullet”和bulletFrame对其进行初始化

我猜你想要的是子弹(新子弹(…)
.1



1.尽管是这样,但我强烈建议您不要使用原始指针和手动内存管理,而是研究智能指针。

我已修改了代码段中的空白,以便更容易看到发生了什么。看看这个问题:
子弹(新精灵(…)
可能会这样做(但这只是假设一个
精灵可能是什么)。