我有三个班。基类被称为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
from B18
,只继承numMissiles
from F16
?例如:
B18::B18(int numMissiles, int bullets) :
F16(numMissiles), mBullets(bullets) {}
类似上面的东西(当然不起作用,并且可能有逻辑错误)。