C ++の静的ポリモーフィズムと動的ポリモーフィズム

静的ポリモーフィズム(コンパイル時/初期バインディング)
関数のオーバーロード

class A
{
   
    
    
public:
    void do(int a);
    void do(int a, int b);
};

動的ポリモーフィズム(ランタイム/遅延バインディング)

•仮想関数:仮想を使用してメンバー関数を装飾し、仮想関数にします
注:
•通常の関数(非クラスメンバー関数)を仮想関数にすることはできません
•静的関数(静的)を仮想関数に
することはできません•コンストラクターを仮想関数にすることはできません(なぜなら、コンストラクターが呼び出されたとき、仮想テーブルポインターはオブジェクトのメモリ空間になく、コンストラクター呼び出しの完了後に仮想テーブルポインターを形成する必要があるためです)
•インライン関数は、多態性を示す仮想関数にすることはできません。 、参照:仮想関数(仮想)をインラインにすることはできますか?
動的ポリモーフィックな使用

 

おすすめ

転載: blog.csdn.net/it_xiangqiang/article/details/113103162