2017-06-25 1 views
1

次のコードの出力についてはかなり混乱しています。出力はC++仮想関数の出力

A::Fun 
C::Do 

誰でもこの現象が起こった理由を説明できますか?どんな助けもありがとう!

答えて

3

Fun関数は、どのベースクラスでも仮想ではありません。関数Callでは、すべてのコンパイラはA::Fun関数を知っていますが、Cクラスについてはわかりません。知っているのは、Bオブジェクトへの参照があり、B::Funが存在しないため、親クラスを調べてA::Fun関数を見つけることだけです。

+0

ありがとうございました!それは多くの助けになります! – IJK