1
說我有以下類:C++虛方法:最好的方式來使用基本實現,並加
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 ::飛。一個簡單的方法如下:
virtual bool SomeModel::Fly(uint64_t destinationID)
{
//Do something that SomeModel specifically should do before it gets flying.
Airplane::Fly(destinationID);
}
有沒有更好的方法呢?或者還有另一種選擇另一種方式的原因。我知道這是一個普遍的問題,但這是我第一次實施這樣的方法,所以我想確保我不會錯過任何東西。
編輯
我覺得很值得強調的是,飛機是不是一般的或抽象類,許多飛機在該公司只是飛機和出現這樣沒有任何inhritance,有雖然是一個特定的模式有一些特定的行爲。
方式顯示是正確的方式來做到這一點。你不喜歡它什麼? – Angew 2013-05-10 11:47:24
我只是不確定這是否因爲我從未遇到類似的事情。 – Subway 2013-05-10 11:50:24
您可能想要了解Design Patterns,特別是Template Method模式(不要與C++函數模板混淆)。 – 2013-05-10 11:50:36