0

仮想コンストラクタを使用できるのに仮想コンストラクタを使用できないのはなぜですか?

4

1 に答える 1

1

new ClassName()コンストラクターチェーンは、可能な限り最も具体的なクラスから常に使用するため、コンパイル時に決定できます。

ただし、ポリモーフィズムを使用する場合は、親クラスの可能性があるデストラクタを呼び出すため、コンパイル時にチェーンをどこから開始するかを知ることができません。常に適切なものを呼び出すには、仮想関数が必要です(または、最も具体的なクラスで、クリーンアップされていない可能性のあるリソースが発生する可能性があります)。

于 2011-10-11T16:55:09.933 に答える