私は3つのクラスを持っています。基本クラスは次のように呼ばれJet
ます。
class Jet
{
public :
Jet(int fuel);
void fly();
protected:
int mfuel;
};
Jet::Jet(int fuel): mfuel(fuel) {}
2 番目のクラスは次のように呼ばれ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) {}
3 番目のクラス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を消去して、 fromB18
のみを継承できますか? 例えば:numMissiles
F16
B18::B18(int numMissiles, int bullets) :
F16(numMissiles), mBullets(bullets) {}
上記のようなもの(もちろん機能せず、おそらく論理エラーがあります) .