静的ポリモーフィズム(コンパイル時/初期バインディング)
関数のオーバーロード
class A
{
public:
void do(int a);
void do(int a, int b);
};
動的ポリモーフィズム(ランタイム/遅延バインディング)
•仮想関数:仮想を使用してメンバー関数を装飾し、仮想関数にします
注:
•通常の関数(非クラスメンバー関数)を仮想関数にすることはできません
•静的関数(静的)を仮想関数に
することはできません•コンストラクターを仮想関数にすることはできません(なぜなら、コンストラクターが呼び出されたとき、仮想テーブルポインターはオブジェクトのメモリ空間になく、コンストラクター呼び出しの完了後に仮想テーブルポインターを形成する必要があるためです)
•インライン関数は、多態性を示す仮想関数にすることはできません。 、参照:仮想関数(仮想)をインラインにすることはできますか?
動的ポリモーフィックな使用