我要擴展一個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