構築および破棄中に仮想メソッドを呼び出すと、コンパイラエラーが発生しますか?危険なことだと聞きました。
Class Base
仮想メソッドを定義するがあればfoo()
、の解決はのfoo()
すべてのサブクラスで動的であることを知っていBase
ます。したがって、サブクラスDerived
がオーバーライドするとfoo()
、thenDerived::foo()
が呼び出されます。では、構築/破棄中に仮想メソッドを呼び出すと、コンパイラが混乱するのはなぜですか?
コンストラクターから呼び出すことと、コンストラクターの外部で呼び出すことの違いは何ですか?