c++||OOP
2182 ワード
オブジェクト向けに3つの特徴があります:データ抽象、継承と動的バインド、クラスでデータ抽象を行い、クラスで1つのクラスを派生して別のクラスを継承し、派生クラスはベースクラスのメンバーを継承し、動的バインドはコンパイラがベースクラスで定義された関数を使用するか派生で定義された関数を使用するかを決定することができます.
1.継承
継承により、派生クラス(dervied class)はベースクラス(base class)定義メンバーを継承することができ、派生クラスに関連しない操作を変更する必要がなく、派生クラスは派生タイプに関連するメンバー関数を再定義し、関数を特化し、ベースクラスを定義することでより多くのメンバーを派生することができ、ベースクラスは派生クラスがそれらの関数を再定義することを指摘しなければならない.virtualの関数ベースクラスを定義して再定義できます.
2.ダイナミックバインド(dymanatic binding)は、オブジェクトのタイプに関心を持つことなく、継承階層の任意のタイプのオブジェクトを記述することができる.
3.virtualと他のメンバー関数
c++のデフォルトでは動的バインドは使用されません.動的バインドを開始する場合、虚関数メンバーを指定して動的バインドを行います.メンバーのデフォルトは虚関数ではありません.虚関数ではありません.動的バインドは行いません.第2に、ベースクラスタイプの参照またはポインタによる関数呼び出しが必要です.
4.デフォルトの実参与虚関数
虚関数にはデフォルトの実パラメータもあり、定調でデフォルトの実パラメータ値を与える場合、コンパイル時に決定されます.
呼び出しがデフォルト値を持つ実際のパラメータを省略した場合、使用する値には、オブジェクトのダイナミックタイプに関係なく、関数を呼び出すタイプ定義があります.
ベースクラスの参照またはポインタで虚関数を呼び出すと、デフォルトの実パラメータは派生クラスのバージョンで宣言された値です.
5.友元関係.
継承できません.ベースクラスの友元は派生クラスに対して特別なアクセス権を持っていません.ベースクラスが友元関係を付与場合、ベースクラスだけが特別なアクセス権を持っています.
6.静的メンバーの継承
ベースクラスがstaticメンバーを定義している場合、継承階層全体に1つのメンバーしかありません.クラスが派生しても、staticごとに1つのインスタンスしかありません.
7.コンストラクション関数とレプリケーション制御
各派生クラスオブジェクトは、派生クラス定義メンバーに1つまたは複数のベースクラスサブオブジェクトを加える構成され、派生クラスオブジェクトの構成に影響を与える.
7.2再構築
再構築には、クラス階層の再定義、操作またはデータクラスの移行が含まれます.再構築が変更された後、コードを再コンパイルする必要があります.
7.3ベースクラスインタフェースの尊重
コンストラクション関数は、直接ベースクラスのみを初期化する理由で、各インタフェースが定義され、すべてのインタラクションがインタフェースを通過すると定義.
8フィクション解析関数
動的割当てオブジェクトを削除するには、解析関数がメモリを解放する前にオブジェクトを明確にする必要があります.継承階層では、ポインタの静的タイプの削除には、同時に解析関数が必要ではありません.ベースクラスのメンバーを明確にするには、虚関数でなければなりません.
9.ハンドルクラス
ハンドル(handlde)とパッケージ(cover)を定義ことによって管理クラスのポインタを格納し、ポインタはオブジェクトに変化することができ、ダミーメンバーの動作は実行時にハンドルによって継承操作にアクセスする.
1.継承
継承により、派生クラス(dervied class)はベースクラス(base class)定義メンバーを継承することができ、派生クラスに関連しない操作を変更する必要がなく、派生クラスは派生タイプに関連するメンバー関数を再定義し、関数を特化し、ベースクラスを定義することでより多くのメンバーを派生することができ、ベースクラスは派生クラスがそれらの関数を再定義することを指摘しなければならない.virtualの関数ベースクラスを定義して再定義できます.
2.ダイナミックバインド(dymanatic binding)は、オブジェクトのタイプに関心を持つことなく、継承階層の任意のタイプのオブジェクトを記述することができる.
3.virtualと他のメンバー関数
c++のデフォルトでは動的バインドは使用されません.動的バインドを開始する場合、虚関数メンバーを指定して動的バインドを行います.メンバーのデフォルトは虚関数ではありません.虚関数ではありません.動的バインドは行いません.第2に、ベースクラスタイプの参照またはポインタによる関数呼び出しが必要です.
4.デフォルトの実参与虚関数
虚関数にはデフォルトの実パラメータもあり、定調でデフォルトの実パラメータ値を与える場合、コンパイル時に決定されます.
呼び出しがデフォルト値を持つ実際のパラメータを省略した場合、使用する値には、オブジェクトのダイナミックタイプに関係なく、関数を呼び出すタイプ定義があります.
ベースクラスの参照またはポインタで虚関数を呼び出すと、デフォルトの実パラメータは派生クラスのバージョンで宣言された値です.
5.友元関係.
継承できません.ベースクラスの友元は派生クラスに対して特別なアクセス権を持っていません.ベースクラスが友元関係を付与場合、ベースクラスだけが特別なアクセス権を持っています.
//
class FC
{
friend class Frnd;
public:
FC();
private:
protected:
int i;
};
class Dl :FC {
friend class FC;
public :
int getFc(FC f) { return f.i; }
private:
};
class Frnd {
public:
int mem(FC b) { return b.i; }
int men();
private:
int dc;
};
6.静的メンバーの継承
ベースクラスがstaticメンバーを定義している場合、継承階層全体に1つのメンバーしかありません.クラスが派生しても、staticごとに1つのインスタンスしかありません.
7.コンストラクション関数とレプリケーション制御
各派生クラスオブジェクトは、派生クラス定義メンバーに1つまたは複数のベースクラスサブオブジェクトを加える構成され、派生クラスオブジェクトの構成に影響を与える.
7.2再構築
再構築には、クラス階層の再定義、操作またはデータクラスの移行が含まれます.再構築が変更された後、コードを再コンパイルする必要があります.
7.3ベースクラスインタフェースの尊重
コンストラクション関数は、直接ベースクラスのみを初期化する理由で、各インタフェースが定義され、すべてのインタラクションがインタフェースを通過すると定義.
8フィクション解析関数
動的割当てオブジェクトを削除するには、解析関数がメモリを解放する前にオブジェクトを明確にする必要があります.継承階層では、ポインタの静的タイプの削除には、同時に解析関数が必要ではありません.ベースクラスのメンバーを明確にするには、虚関数でなければなりません.
9.ハンドルクラス
ハンドル(handlde)とパッケージ(cover)を定義ことによって管理クラスのポインタを格納し、ポインタはオブジェクトに変化することができ、ダミーメンバーの動作は実行時にハンドルによって継承操作にアクセスする.