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.尽管是这样,但我强烈建议您不要使用原始指针和手动内存管理,而是研究智能指针。我已修改了代码段中的空白,以便更容易看到发生了什么。看看这个问题:
子弹(新精灵(…)
可能会这样做(但这只是假设一个精灵可能是什么)。