c++の仮想関数について勉強していますが以下の二点を教えていただけますでしょうか。?
新版明解c++中級編の本を読んでいますがつまりどういうことなのかがわからないので質問しました。
1,仮想関数の利点
2,仮想関数の使い方

        #include <iostream>
        #include <string>
        #include "conio.h"
        using namespace std;


        class A {

        public:


            virtual void f1() {
                cout <<"A::f1()virtualです"<< endl;
            }

            virtual void f2() {
                cout<<"A::f1()virtualです"<<endl;
            }
        };

        class B :public  A {

        public:

            void f1() {
                cout << "B::f1()\n";
            }

        };







        int main() {

            B b;
            b.f1();



            _getch();
            return 0;
        }