我要扩展一个C++类,但绝对没有该语言的背景。谷歌搜索并没有帮助我了解如何解决编译错误:C++,帮助扩展这个类
Constructor for 'JRB2World' must explicitly initialize the base class 'b2World' which does not have a default constructor
所以,有这种b2World.h
class b2World
{
public:
b2World(const b2Vec2& gravity);
~b2World();
// ...
而且它的.cpp:
b2World::b2World(const b2Vec2& gravity)
{
// ...
}
b2World::~b2World()
{
// ...
}
我的班级标题:
#import "Box2D.h"
class JRB2World : public b2World {
float factor;
public:
JRB2World(const b2Vec2& gravity);
~JRB2World();
float getFactor();
void setFactor(float f);
};
我的班级实现:
JRB2World::JRB2World(const b2Vec2& gravity) {
// Constructor for 'JRB2World' must explicitly initialize the base class 'b2World' which does not have a default constructor
}
JRB2World::~JRB2World() {
}
float JRB2World::getFactor(){
return factor;
}
void JRB2World::setFactor(float f){
factor = f;
}
我想它必须做一个像“java构造函数”或objc的调用。如何才能做到这一点?
当您没有在基类(b2World)中的默认构造函数中,您需要显式地从派生类构造函数的成员初始化列表(JRB2World)调用具有参数的基类构造函数。 – MimiEAM