Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ クラスのコンストラクタとは何か | イントロダクション
C++のクラスとオブジェクト

bookクラスのコンストラクタとは何か

メニューを表示するにはスワイプしてください

Note
定義

コンストラクタは、オブジェクトが生成される際に呼び出されるクラスの特別なメソッド。これにより、属性を意味のある値に初期化できる。

コンストラクタを使用することで、オブジェクトの生成が簡単になる。コンストラクタがなければ、各プロパティを個別に設定し、オブジェクトを使用可能な状態にするために複数のメソッドを呼び出す必要がある場合がある。

コンストラクタの主な目的は、新しく作成されたインスタンスを初期化すること。コンストラクタに渡されたパラメータに基づいて属性の初期値を設定し、オブジェクトが有効な状態で開始されることを保証する。

コンストラクタの構文

コンストラクタの開発プロセスは一見単純に思えるが、多くの具体的な考慮事項が含まれる。一般的な作成手順は次のとおり。

student.h

student.h

copy
12345678
class Student { public: Student() { name = 'Default'; } std::string name; };
  • 名前: コンストラクタはクラス自身と同じ名前を持つ;
  • 戻り値の型: コンストラクタには戻り値の型がなく、voidさえも指定しない;
  • パラメータ: コンストラクタはパラメータを取ることができ、異なるパラメータセットでオーバーロードすることで、さまざまな方法でオブジェクトを初期化できる;
  • 自動呼び出し: オブジェクトが生成されるとき、コンストラクタはコンパイラによって自動的に呼び出される。

デフォルトコンストラクタ

デフォルトコンストラクタは、引数なしで呼び出すことができるコンストラクタ。デフォルトコンストラクタの定義と使用方法は以下の通り:

main.cpp

main.cpp

copy
1234567891011121314
#include <iostream> class Example { public: Example() { std::cout << "Object was created!"; } }; int main() { Example obj; }

上記のコードで実験可能。Example() メソッド内に記述されたロジックは、クラス のインスタンスが作成されるたびに毎回実行される。

Note
注意

オブジェクトをもう一つ追加するか、コンストラクタ内のロジックを変更することを推奨。

コンストラクタが定義されていない場合、コンパイラはデフォルトのコンストラクタを自動生成します。その動作はメンバ変数の型(基本型、デフォルト構築可能型、ユーザー定義型)によって異なります。

main.cpp

main.cpp

copy
123456789101112
#include <iostream> class Example { public: int value; }; int main() { Example obj; // Default constructor std::cout << obj.value; }

属性は基本データ型です。自動生成されたデフォルトコンストラクタは、組み込み型のメンバ変数を初期化しません。オブジェクトを作成してこれらのフィールドを明示的に初期化しない場合、不定値となります。

Note
注意

コンパイラがvalue変数に一貫した値を提供する場合がありますが、標準ではそれが要求されておらず、ゴミ値が入る可能性があります

question mark

コンストラクタはいつ呼び出されますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  9

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  9
some-alt