JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.2: C++ ユーザーズガイド
search filter icon
search icon

ドキュメントの情報

はじめに

パート I C++ コンパイラ

1.  C++ コンパイラの紹介

2.  C++ コンパイラの使用方法

3.  C++ コンパイラオプションの使い方

パート II C++ プログラムの作成

4.  言語拡張

5.  プログラムの編成

6.  テンプレートの作成と使用

7.  テンプレートのコンパイル

8.  例外処理

9.  プログラムパフォーマンスの改善

10.  マルチスレッドプログラムの構築

パート III ライブラリ

11.  ライブラリの使用

12.  C++ 標準ライブラリの使用

13.  従来の iostream ライブラリの使用

14.  複素数演算ライブラリの使用

14.1 複素数ライブラリ

14.1.1 複素数ライブラリの使用方法

14.2 complex 型

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

14.2.2 算術演算子

14.3 数学関数

14.4 エラー処理

14.5 入出力

14.6 混合演算

14.7 効率

14.8 複素数のマニュアルページ

15.  ライブラリの構築

パート IV 付録

A.  C++ コンパイラオプション

B.  プラグマ

用語集

索引

14.2 complex 型

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

class complex {
    double re, im;
};

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

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

complex には 2 つのコンストラクタがあります。それぞれの定義を次に示します。

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

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

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 関数を使用して複素数を生成することもできます。「14.3 数学関数」を参照してください。polar 関数は、指定した 1 組の極座標値 (絶対値と偏角) を使用して複素数を作成します。

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

14.2.2 算術演算子

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

+ - / * =

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

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

ただし、この 4 つの演算子については、式の中で使用可能な値は生成されません。したがって、次のコードは機能しません。

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

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

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