第二週:基底クラスとオブジェクト
オブジェクト指向プログラミングの4つの基本的な特性
抽象化、カプセル化、継承、ポリモーフィズム。
オブジェクト指向プログラミングのプロセス
1.目的のもの抽象クラスの
メンバ変数とメンバ関数と抽象もの(同様の構造を持つ関数)
メンバ変数とメンバ関数をまとめてクラスのメンバーと呼ばれます。
クラスによって、我々は、我々はオブジェクトと呼ばれて定義された変数、クラス変数を定義することができます。
2.メモリ割り当てオブジェクトは、
オブジェクトによって占められる空間の部材の大きさは、すべてのメンバ変数のサイズに等しく、。
オブジェクトの占有スペースは、メンバ関数が含まれていません。
各オブジェクトは、独自のメモリ空間を持つ、オブジェクトのメンバ変数が変更され、それは他に影響を与えません。
対象物3との間の操作
オペレータがオーバーロードされていない限り、オブジェクト間の構造変数の割り当てなどがあり得るが、>、<、== ,! =、等の操作を使用しなくてもよいです。
4.使用してメンバ変数やクラスのメンバ関数
の使用aを:オブジェクトのメンバーの名前。
使用法II:ポインタ- >メンバー名の
使用法3:基準部材名
クラスとクラスのメンバ関数の5定義は別に書き込むことができ
クラス名::関数名
INT A ::和(ボイド){}
6.クラスのメンバーは、の範囲にアクセスすることができ
、次のアクセスクラスの範囲を説明するために、キーワードを使用し、アクセスの以下の範囲で、クラスの定義にアクセスできる範囲を:
プライベート:のプライベートメンバー
パブリック:パブリックメンバー
の保護を:のメンバーの保護
3つのキーワードを使用頻度と限定していないため
、民間メンバーを設定するメカニズムは、隠されたと呼ばれます。
7.また、メンバーはオーバーロードすると、デフォルトの機能することができる
のブログ上で見ます
コンストラクタ
基本コンセプト
一つの機能のメンバーが、ノーリターン値:
クラスとして1関数名は、パラメーターを有していてもよく、あなたは戻り値を持つことはできません。
2.役割は、メンバ変数に割り当てられた初期値として、オブジェクトを初期化することです
3.あなたはクラスのコンストラクタの定義を書いていない場合は、コンパイラが自動的に引数なしのコンストラクタは意味がありませんが生成されます。
4.コンストラクタが定義されている場合、コンパイラは、コンストラクタを生成しません。
前記オブジェクト生成コンストラクタが自動的に呼び出されます。オブジェクト生成したら、設定を複製することはできません。
図6は、クラスのコンストラクタの複数であってもよいです
コンストラクタ理由:
1.コンストラクタは、必要な初期化を実行し、コンストラクタは独自のより特別な初期化関数を記述する必要はありません。
2.初期化されていないオブジェクトを使用すると、エラーが発生します。
配列のコンストラクタ
{A、B、C}を使用するためのパラメータ。
二つ以上を使用する - {A(a、b)は、A(B)}。
コピーコンストラクタ
コンセプト
唯一つのパラメータ、同じオブジェクトへの、すなわち参照。
フォームX:X(X&)またはX :: X(CONST X&)は 、 それらの間で選択するか、またはパラメータとして一定の物体であってもよいです。
あなたはコピーコンストラクタを定義しない場合、コンパイラは、独自に生成します。
あなたがあなた自身のコピーコンストラクタを定義する場合、デフォルトのコピーコンストラクタは存在しません。
このコピーコンストラクタは、X :: X(X)はできません。
3例のコンストラクタ関数をコピーします。
オブジェクトは、同じ種類の別のオブジェクトを初期化するために使用されている1。
パラメータは、オブジェクトのクラスAの関数である場合、その関数が呼び出されると2は、コピーコンストラクタクラスAが呼び出されます。
3.関数の戻り値は、関数が戻るが、コピーコンストラクタが呼び出されたときに、オブジェクトAのクラスである場合。
注意:オブジェクト間の割り当ては、コンストラクタが呼び出されたコピーにはつながりません。
一定の基準パラメータを使用してください:あなたがオブジェクトの値が関数内で参照されたくない場合は、パラメータは、オブジェクトの機能がある場合は、コピーコンストラクタ、大きなオーバーヘッドを呼び出すとき、この問題を解決するために、使用されなければならない、我々は、参照オブジェクトを使用することができます、あなたはCONSTを使用することができます。
型変換コンストラクタ
コンセプト
オブジェクトコンストラクタは、変換タイプの自動変換を達成するために定義されています。
コンストラクタのパラメータではなく、コピーコンストラクタのみ、通常の変換コンストラクタとして見ることができます。
必要な場合には、コンパイラが自動的に無名の一時的なオブジェクトを生成するための型変換コンストラクタを呼び出します。
デストラクタ
〜クラスのデストラクタと呼ばれるタイプ。
クラスはデストラクタを持つことができます。
デストラクタは、オブジェクト型の前に是正作業を行います。
コンパイラが自動的にデフォルトのデストラクタを生成しますが、この関数は何もしません。ノーデストラクタ定義されたクラス、もし
各アレイメンバーの寿命の終了時にオブジェクトの配列は、デストラクタを呼び出す
削除機能のときに自動的にデストラクタを呼び出す
オブジェクトでデストラクタが呼び出した後、関数の戻り値として返さ