-4

私は C++ にかなり慣れていませんが、C++ でオーバーライドを使用する代わりに仮想関数を使用するのが最も有益な時期はいつでしょうか?

4

1 に答える 1

1

基本クラスで関数を仮想として定義すると、基本クラスへの参照を使用している場合でも、派生クラスの関数を実行することをコンパイラーに示します。これにより、実行時の決定が行われます。

基本クラス関数が仮想でない場合、どの関数が実行されるかは参照によって異なります。これはコンパイル時の決定です。

仮想関数は、オブジェクト指向設計でポリモーフィズムを実装するために使用されます。多くの場合、派生クラスに同じ名前の関数があるときに、基本クラスの関数を仮想としてマークしないのはバグです。そのため、ほとんどのコンパイラはこれを警告としてフラグ付けします。

于 2013-03-27T23:11:02.003 に答える