C++のコンストラクタ
コンストラクターは、クラスの新しいオブジェクトが作成されたときに実行されるクラスの関数です。コンストラクターはクラスと同じ名前であり、戻り型はなく、voidでさえありません。これらは主に、クラスの変数の初期値を提供するのに役立ちます。
コンストラクターの2つの主なタイプは、デフォルトのコンストラクターとパラメーター化されたコンストラクターです。これらの詳細は次のとおりです。
デフォルトコンストラクタ
デフォルトのコンストラクターはパラメーターを取りません。デフォルトのコンストラクターがプログラマーによって明示的に提供されていない場合、コンパイラーは暗黙のデフォルトのコンストラクターを提供します。その場合、変数のデフォルト値は0です。
デフォルトのコンストラクターを示すプログラムは次のとおりです。
例
#include <iostream> using namespace std; class A { private: int num1, num2 ; public: A() { num1 = 5; num2 = 7; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } }; int main() { A obj; obj.display(); return 0; }
出力
num1 = 5 num2 = 7
上記のプログラムでは、クラスAには、num1とnum2を5と7として初期化するデフォルトのコンストラクターが含まれています。また、num1とnum2の値を出力する関数display()も含まれています。このためのコードスニペットは次のとおりです。
class A { private: int num1, num2 ; public: A() { num1 = 5; num2 = 7; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } };
関数main()には、クラスタイプAのオブジェクトのオブジェクト定義が含まれています。次に、関数display()が呼び出されます。これを以下に示します。
A obj; obj.display();
パラメーター化されたコンストラクター
パラメータ化されたコンストラクタは、オブジェクトの作成時にオブジェクトを初期化するための引数を取ることができます。パラメーターは、通常の関数に追加されるのと同じように、パラメーター化されたコンストラクターに追加されます。パラメータ化されたコンストラクタは、暗黙的または明示的に呼び出すことができます。
パラメータ化されたコンストラクタを示すプログラムは次のとおりです。
例
#include <iostream> using namespace std; class A { private: int num1, num2 ; public: A(int n1, int n2) { num1 = n1; num2 = n2; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } }; int main() { A obj(3,8); obj.display(); return 0; }
出力
num1 = 3 num2 = 8
上記のプログラムでは、クラスAには、num1とnum2をn1とn2によって提供される値で初期化するパラメーター化されたコンストラクターが含まれています。また、num1とnum2の値を出力する関数display()も含まれています。このためのコードスニペットは次のとおりです。
class A { private: int num1, num2 ; public: A(int n1, int n2) { num1 = n1; num2 = n2; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } };
関数main()には、クラスタイプAのオブジェクトのオブジェクト定義が含まれています。次に、関数display()が呼び出されます。これを以下に示します。
A obj(3,8); obj.display();
-
C++のデストラクタ
C ++のデストラクタは、オブジェクトを削除するクラスのメンバー関数です。これらは、関数が終了したとき、プログラムが終了したとき、変数の削除が呼び出されたときなど、クラスオブジェクトがスコープ外になったときに呼び出されます。 デストラクタは、引数を取らず、何も返さないため、通常のメンバー関数とは異なります。また、デストラクタの名前はクラスと同じで、名前の前にチルダ(〜)が付いています。 C++でデストラクタをデモンストレーションするプログラムは次のとおりです。 例 #include<iostream> using namespace std; class Demo { &nbs
-
C++でコンストラクタをコピーする
コピーコンストラクターはコンストラクターの一種です。オブジェクトを作成し、同じクラスのオブジェクトで初期化します。コピーコンストラクターがクラスで定義されていない場合は、コンパイラー自体が定義します。コピーコンストラクタは、ポインタ変数または動的メモリ割り当てを持つクラスの必須事項です。 コピーコンストラクタを示すプログラムは次のとおりです。 例 #include<iostream> using namespace std; class Demo { private: int num1, num2; p