C++-マルチステートとダミー関数
1537 ワード
かそうかんすうクラスの定義では、virturalキーワードの前にあるメンバー関数を虚関数と呼ぶ. virtualキーワードはクラス定義の関数宣言にのみ使用され、関数体を書くときは使用されません. コンストラクション関数と静的メンバー関数は虚関数ではありません.
多態の変現形式一派生クラスのポインタは、ベースクラスのポインタに付与することができる. ベースクラスポインタを使用してベースクラスと派生クラスの同じ名前の虚関数を呼び出す場合: ポインタがベースクラスのオブジェクトを指す場合、呼び出されたときのベースクラスの虚関数. ポインタが派生クラスのオブジェクトを指す場合、派生クラスの虚関数が呼び出されます.このメカニズムを「多態」と呼ぶ.
多態の表現形式二派生クラスのオブジェクトは、ベースクラス参照 に付与することができる.ベースクラス参照によってベースクラスと派生クラスの同じ名前の虚関数が呼び出された場合: 参照がベースクラスのオブジェクトである場合、呼び出されたときのベースクラスの虚関数. 参照が派生クラスの額オブジェクトを参照している場合、呼び出されるのは派生クラスの虚関数である.このメカニズムを「多態」とも呼ぶ.
たじょうたいさよう
オブジェクト向けのプログラム設計にマルチステートを用いることで,プログラムの拡張性を向上させることができる,すなわち,プログラムが機能を修正または追加する必要がある場合,変更と追加が必要なコードは比較的少ない.
class base{
virtual int get();
};
int base::get(){}
多態の変現形式一
class CBase{
public:
virtual void SomeVirtualFunction(){}
};
class CDerived:public CBase{
public:
virtual void SomeVirtualFunction(){}
};
int main() {
CDerived ODerived;
CBase * p = & ODerived;
// p , , 。
p-> SomeVirtualFunction();
return ();
}
多態の表現形式二
class CBase{
public:
virtual void SomeVirtualFunction(){}
};
class CDerived:public CBase{
public:
virtaul void SomeVirtualFunction(){}
};
int main(){
CDerived ODerived;
CBase & r = ODerived;
// r
r. SomeVirtualFunction();
return 0;
}
たじょうたいさよう
オブジェクト向けのプログラム設計にマルチステートを用いることで,プログラムの拡張性を向上させることができる,すなわち,プログラムが機能を修正または追加する必要がある場合,変更と追加が必要なコードは比較的少ない.