かまたま日記3

プログラミングメイン、たまに日常

コンストラクタでメソッドを呼び出す場合の注意

レガシーコード改善ガイドを読んでいて知ったのですが、C++コンストラクタ内のメソッドのオーバーライドが禁止されているようです。

レガシーコード改善ガイド (Object Oriented SELECTION)

レガシーコード改善ガイド (Object Oriented SELECTION)

あまり意識していなかったのですが、確かに以下のようなパターンもあるので危険ですね。
Javaではオッケーってことになってるみたいですが、テスト用途以外はあまりオーバーライドは使わない方がよさそうです。