我在下面的代码中收到以下错误:“表达式列表被视为复合表达式”。我找不到什么问题?
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&);
最佳答案
问题是thebullet
是一个指针,但是您尝试使用Vector2f(700,760), Vector2f(20,45), "bullet" , &bulletFrame
对其进行初始化。
我的猜测是您想要thebullet(new Bullet(...))
.1
1.尽管是,但我强烈建议您不要使用原始指针和手动内存管理,而应研究智能指针。