>>909
仮想メンバ関数(virtual)は、「その」クラス(A2)のポインタ型(A2*)に
派生クラス(B2)のポインタ(B2*)を入れて「A2*型」の仮想メンバ関数実行したとき、
A2の関数ではなく、代入したクラスのB2のメンバ関数が実行されるようにする機能です。

使い分けとしては、上記のような機能が必要なとき(派生クラスのポインタを入れるとき)に
限ってvirtualを使います。これをポリモーフィズムと言ったりします。

ポリモーフィズムでない場合とは、クラスA1に機能を追加して派生した
クラスB1のようなクラス構成の場合です。
この場合は、同じ名前のメソッドでも、それぞれクラスA1専用のもの、
クラスB1専用のものと分かれているため、別の処理をすることになります。

仮想関数は通常のメンバ関数の呼び出しとは異なり、コストが大きいので意味もなく
使わない方がいいです。
また、ポリモーフィズムでない機能の継承は使うべきである場面が限られていますので、
どうしても継承が必要な場合はA4レポート1枚くらいに理由をまとめた方がいいです。