マルチステートの実装方法およびダイナミックアセンブリ、静的アセンブリ

2703 ワード

マルチステートは、その名の通り「マルチステート」であり、オブジェクト向け言語では、インタフェースのさまざまな実装方式がマルチステートである.つまり、子クラスのポインタを親クラスのポインタに割り当てることができます.
 
  
class A
{
public:
    A();
    virtual void k(){
        qDebug()<<"aaaaaaaaa";
    }
};
class B : public A
{
public:
    B();
    void k(){
        qDebug() <<"bbbbbbbbbbbbb";
    }
};
c++におけるマルチステート実装方法は、リロード、オーバーライド、関数テンプレートの3つの方法である.
ここで、リロードとは、同じクラスで関数のリロードがマルチステートを実現することであり、オーバーライドは虚関数の継承である.リロードされたマルチステートは静的マルチステート(厳密にはマルチステートではない)とも呼ばれ、カバーされたマルチステートは動的マルチステートと呼ばれ、その中の静動も静的アセンブリ、動的アセンブリに関連する.
コンパイルとは、1つのコンピュータプログラムの異なる部分が互いに関連するプロセスを指す.結合が行われる段階によって、静的結合と動的結合の2つの異なる結合方法に分けることができる.
静的アセンブリとは、プログラムの実行前にアセンブリ作業が完了するコンパイル段階で完了することを意味する.
静的アセンブリ対関数の選択は、オブジェクトを指すポインタまたは参照のタイプに基づいています.
関数コンパイルフェーズでは、関数の呼び出しが決定されます.
これはマルチステートでのリロードに相当し、関数の呼び出しはコンパイルフェーズで完了します.
動的アセンブリとは,アセンブリがプログラム実行時に動的に行われ,その時の状況に応じてどの同名関数が呼び出され,実際には実行時に虚関数が実現されるかを決定することである.
動的アセンブリでの関数呼び出しは、関数の実行フェーズで決定されます.これには、マルチステート内の関数オーバーライドが含まれます.