
![]() |
|||
| このトピックでは次の用語を覚えます: | |||
|
|||
![]() |
|||
|
ひとつ前のトピックで取り上げた複素数型 Complex は、普通に(auto 変数として)使うと不定な初期値が入ってしまいます。望ましくは、初期値としてゼロが入っていて欲しいでしょう。C++ では、構造体の初期値を与えるための関数「コンストラクタ」を記述することができます。 コンストラクタは通常の関数とは違う場所に定義します。それは、構造体の内側です。構造体の内側で定義された関数のことを、メンバ関数と言います。 実は、メンバ関数はいくらでも定義できます。そのうち構造体と同じ名前のものがコンストラクタとなります。 |
|||
|
||||
|
コンストラクタはパラメータをとることもできます。複素数型 Complex の場合は、「パラメータなしならゼロで初期化され、パラメータ1つなら実部にだけ代入して虚部はゼロとし、パラメータ2つなら実部・虚部それぞれに代入する」というパターンが望ましいでしょう。そこで、パラメータの省略テクニックを併用して、次のようにします。 |
|||
|
||||
(「オブジェクト指向のはなし」は1999年2月から2000年4月にかけて作成されたコンテンツです。)