C++ のコンストラクターを使用した動的初期化をマスターする
コンストラクターを使用した動的初期化
C++ では、動的初期化は、コンストラクターを使用して実行時に変数またはオブジェクトを初期化するプロセスです。
コンストラクターはオブジェクトの作成において重要な役割を果たし、クラスの静的データ メンバーと動的データ メンバーの両方を初期化するために使用できます。
オブジェクトの作成中に、そのコンストラクターが呼び出されます。コンストラクターにデータ メンバーを値で初期化するロジックが含まれている場合、これは動的初期化と呼ばれます。これは、値が実行時に計算、取得、または決定されるため、静的初期化よりも柔軟であるため役立ちます。
構文
コンストラクターを使用した動的初期化の構文は次のとおりです。
ClassName* objectName = new ClassName(constructor_arguments);
ここで、ClassName はクラス タイプです。
objectName はオブジェクトへのポインタです。
constructor_arguments は、コンストラクターに渡される引数です。
コンストラクターを使用した動的初期化の例
以下は、コンストラクターを使用した動的初期化の例です。
#include <iostream>
using namespace std;
class Rectangle {
public:
int width, height;
// Constructor to initialize width and height
Rectangle(int w, int h) : width(w), height(h) {}
void display() {
cout << "Width: " << width << ", Height: " << height << endl;
}
};
int main() {
// Dynamically creating a Rectangle object using the constructor
Rectangle* rect = new Rectangle(10, 5);
// Display the values
rect->display();
// Deallocate memory
delete rect;
return 0;
}
出力
Width: 10, Height: 5
説明
- 新しい Rectangle(10, 5) は、コンストラクターを使用して幅 10、高さ 5 の Rectangle オブジェクトを動的に作成しました。
- このrect->display()は、長方形の寸法を表示しています。
- 削除四角形。 Rectangle オブジェクトが使用するメモリの割り当てを解除します。
動的初期化にコンストラクターを使用する理由
- 実行時のみに知られる値による初期化を許可します。
- オブジェクトの作成と初期化ロジックを簡素化します。
- 初期化と検証を 1 つのステップで結合します。
コンストラクターを使用して C++ 内で動的に初期化すると、実行時にのみ値が決定されるオブジェクトの作成が非常に簡単になります。コンストラクター内に初期化ロジックをカプセル化すると、コードがクリーンで効率的になり、保守しやすくなります。オブジェクトの初期化が実行時データに依存する場合は常に、これを使用します。
C言語