我有三個類。基類被稱爲Jet
:建設者的繼承問題
class Jet
{
public :
Jet(int fuel);
void fly();
protected:
int mfuel;
};
Jet::Jet(int fuel): mfuel(fuel) {}
第二類被稱爲F16
:
class F16 : public Jet
{
public:
F16(int fuel, int numMissiles);
void fireMissile();
protected:
int mNumMissles;
};
F16::F16(int fuel, int numMissiles): Jet(fuel), mNumMissles(numMissiles) {}
第三類B18
通常從F16
繼承的一切:
class B18 : public F16
{
public:
B18(int fuel, int numMissiles, int bullets);
void fireBullets();
private:
int mBullets;
};
現在我的問題是,是這裏的成員成員初始值設定項有一種方法:
B18::B18(int fuel, int numMissiles, int bullets) :
F16(fuel, numMissiles), mBullets(bullets) {}
...這樣我就可以抹去int fuel
從B18
,只有繼承F16
的numMissiles
?例如:
B18::B18(int numMissiles, int bullets) :
F16(numMissiles), mBullets(bullets) {}
喜歡的東西上面(這當然是不行的,而且很可能有邏輯錯誤)。
我不明白「smthg」或「ofc」。你能用完整的詞來代替那些詞嗎? –
我明白這是一個人爲的例子,但從設計的角度來看,'B18'不是'F16'。兩者都應該從'Jet'繼承。也許描述你正在解決的真正問題。 –
Ofc&Ofc&Ofcourse,Smthg&東西 – RedFox