1

次のクラスがあるとします。

class Airplane
{
    virtual bool Fly(uint64_t destinationID)
    {
        //Do what an airplane does to be flown.
    }

    /*
     *  More function and data members.
     */
}

class SomeModel: public Airplane
{
    virtual bool Fly(uint64_t destinationID);
    {
       //Do something that SomeModel specifically should do before it gets flying.  

       //Do exactly what Airplane::Fly does.
    }
}    

私の質問は、SomeModel::Fly を実装する方法です。1 つの簡単な方法は次のとおりです。

virtual bool SomeModel::Fly(uint64_t destinationID)
{
    //Do something that SomeModel specifically should do before it gets flying.  

    Airplane::Fly(destinationID);
}

それを行うより良い方法はありますか?または、別の方法を選択する別の理由があります。これは一般的な質問であることは知っていますが、このようなメソッドを実装する必要があるのは初めてなので、何も見逃していないことを確認したいと思います.

編集

Airplane は一般的なクラスでも抽象的なクラスでもないことを強調しておく価値があると思います。社内の多くの Airplane は単なる飛行機であり、何の影響もないように見えます。特定の動作をする特定のモデルが 1 つあります。

4

1 に答える 1