オブジェクト指向プログラミングにおいて、オブジェクトを生成するとき(インスタンス化するとき)に自動的に呼び出され、初期化などの処理を行うメソッドのことです。
具体的な仕様はプログラミング言語による違いもありますが、クラスベースのオブジェクト指向プログラミング言語であれば、クラスの定義内にメソッドの1つとして記述します。クラスと同じ名前でメソッドを定義するというルールであったり、コンストラクタであることを意味する特別な名前を用いるルールであったりします。C++ は前者です。
C++ のコンストラクタについては、C++編【言語解説】第13章で解説しています。
コンストラクタは、新規のオブジェクトを生成するときに自動的に呼び出されます。正確には、まずオブジェクトの内容を保持するためのメモリアロケーションが行われ、そのあとにオブジェクトを初期化するためにコンストラクタが呼ばれるという順序になります。
C++ では、メモリアロケーションの部分も、operator new を定義することで記述可能です。C++編【言語解説】第36章で解説しています。
コンストラクタの本体には、呼び出されたあとに実行する一連のコードを、通常のメソッドと同じように記述します。引数を渡すこともでき、オーバーロードを行うことで、初期化の方法を数パターン定義することができます。また、コンストラクタ専用の機能を持っているプログラミング言語もあります(C++ のメンバイニシャライザなど)。
C++ のメンバイニシャライザについては、C++編【言語解説】第13章で解説しています。
主に初期化を担うコンストラクタに対応して、オブジェクトが破棄されるときに自動的に呼び出されるデストラクタという仕組みを備えるプログラミング言語もあります。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
Twitter でツイート/フォロー | LINE で送る | noteで書く |
![]() |
管理者情報 | プライバシーポリシー |