C++ ライブラリ・リファレンス

complex

複素数ライブラリでは、クラス complex が 1 つだけ定義されています。クラス complex のオブジェクトは、1 つの複素数を持つことができます。複素数は次の 2 つの部分で構成されています。

各部の数値は double 型で入っています。上は、クラス complex の定義の例です。

クラス complex のオブジェクトの値は、1 組の double 型の値です。最初の値が実部を表し、 2 番目の値が虚部を表します。

クラス complex のコンストラクタ


complex::complex() { re=0.0; im=0.0; }
complex::complex(double r, double i = 0.0)  { re=r; im=i; }

クラス complex には、2 つのコンストラクタがあります。上は、その定義です。

複素数の変数を引数なしで宣言すると、最初のコンストラクタが使用され、実部も虚部もゼロで初期化されます。次の例では、実部も虚部もゼロの複素数の変数が生成されます。


complex aComp;

引数は 1 つまたは 2 つ指定することができ、どちらの場合も 2 番目のコンストラクタが使用されます。次の例のように、引数を 1 つだけ指定した場合は、その値は実部の値とみなされ虚部はゼロに設定されます。


complex aComp(4.533); 

上の例では、次の値を持つ複素数の変数が生成されます。


4.533 + 0i

次の例のように、引数を 2 つ指定した場合は、最初の値が実部、2 番目の値が虚部となります。


complex aComp(8.999, 2.333);

上の例では、次の値を持つ複素数の変数が生成されます。


8.999 + 2.333i

また、複素数ライブラリが提供する polar 関数を使用して複素数を生成することもできます (「数学関数」を参照してください)。polar 関数は、指定した 1 組の極座標値 (絶対値と偏角) を使用して複素数を作成します。

complex 型にはデストラクタはありません。

算術演算子

複素数ライブラリでは、すべての基本算術演算子が定義されています。特に、次の 5 つの演算子は通常の型の演算と同様に使用することができ、優先順序も同じです。

+ - / * =

演算子 - は、通常の型の場合と同様に 2 項演算子としても単項演算子としても使用できます。

この他、次の演算子の使用方法も通常の型で使用する演算子と同様です。

+= -= *= /=


complex a, b;
...
if ((a+=2)==0) {...}; // 誤り
b = a *= b;           // 誤り

ただし、最後の 4 つの演算子では、式の中で使用できる値は生成されません。したがって、上のように使用することはできません。

また、等しいか否かを判定する次の 2 つの演算子は、通常の型で使用する演算子と同様に使用することができます。

== !=

算術式で実数と複素数が混在しているときは、 C++ では複素数のための演算子関数が使用され、実数は複素数に変換されます。