私が取り組んでいるいくつかのコードを見つけたので、最適な設計実装は何かと考えていました。
基本クラスがメソッドを仮想として定義しているが、空の本体も実装しているため、派生クラスが本体を実装する必要がない場合、代わりに純粋にするべきではありませんか?
virtual void AMethod1() {} // 1
virtual void AMethod2() {assert(false);} // 2
virtual void AMethod3() = 0; // 3
- 現在のコード。
- アイデア 1: この派生オブジェクトがこのメソッド本体を実装していないことをユーザーに警告します。
- アイデア 2: 派生クラスに、空であろうとなかろうと、本体を実装するように強制します。
信頼できる素晴らしい SO の人々はどう思いますか?
Edit1:投稿(および回答を読んだ後)後、アサートが悪いことに気付きました!
virtual void AMethod3() = {throw (ENotImplemented)}; // 4