演習 2: circle および sphere クラスの拡張

この演習では、C++ Visualizer および最初の演習で作成したクラス図を使用して、 circle および sphere クラスに操作を追加します。

前の演習では、C++ Visualizer を使用して、 C++ Shapes プロジェクトの階層を表示しました。また、C++ Visualizer を使用して、 プロジェクトにクラスを追加したり、クラスにプロパティーおよびメソッドを追加したりすることもできます。 この演習では、getCircumference メソッドを circle および sphere クラスに追加します。 getCircumference メソッドは、半径を使用して形状および円の外周を計算します。

circle クラスへの getCircumference メソッドの追加

円の外周を計算する式は pi x r x r で、r は円の半径です。グローバル定数 pi は基本形状クラスに保管されます。

circle クラスに getCircumference メソッドを追加するには、以下のようにします。
  1. ダイアグラム・エディターで、classdiagram.dnx 図の中の circle クラスを右クリックし、 次に、「追加 C/C++」>「メソッド」をクリックします。
  2. 「C++ メソッドの作成」ウィンドウの「名前」フィールドに、getCircumference と入力します。
  3. 「戻り値の型」リストから「double」を選択し、「完了」をクリックします。
  4. circle クラスで getCircumference メソッドをダブルクリックし、 コード・エディターで、次のように getCircumference メソッドのボディを指定します。
    {return pi * (2 * getSize());};
  5. コード・エディターで、print メソッドに次のコード行を追加します。
    << "\n\tCircumference = " << getCircumference()

これで、circle クラスに getCircumference メソッドが追加されました。 getCircumference メソッドは、getSize メソッドから得られるサイズ変数とグローバル定数 pi を使用して、外周を計算します。getCircumference メソッドの出力を印刷するために print メソッドの変更も行いました。

sphere クラスへの getCircumference メソッドの追加

最大直径で球の外周を計算する式は、 前のステップで使用した式と同じです。

sphere クラスに getCircumference メソッドを追加するには、以下のようにします。
  1. ダイアグラム・エディターで、classdiagram.dnx 図の中の sphere クラスを右クリックし、 次に、「追加 C/C++」>「メソッド」をクリックします。
  2. 「C++ メソッドの作成」ウィンドウの「名前」フィールドに、getCircumference と入力します。
  3. 「戻り値の型」リストから「double」を選択し、「完了」をクリックします。
  4. sphere クラスで getCircumference メソッドをダブルクリックし、 コード・エディターで、次のように getCircumference メソッドのボディを指定します。
    {return pi * (2 * getSize());};
  5. コード・エディターで、print メソッドに次のコード行を追加します。
    << "\n\tCircumference = " << getCircumference()

ここでは、UML ビジュアル開発ツールおよびコード・エディターを使用して、 getCircumference メソッドを circle および sphere の両方のクラスに追加しました。

Shapes アプリケーションの実行

main.cpp クラスを変更することで、アプリケーションを実行できます。 main.cpp クラスは C++ Shapes アプリケーション用のドライバーです。

Shapes アプリケーションを実行するには、以下のようにします。
  1. 「C/C++ プロジェクト・エクスプローラー」ビューで、main.cpp クラスをダブルクリックします。
  2. コード・エディターで、プログラムのメイン・ボディに次のコードを追加します。
    //instantiate and run the sphere class
    sphere sp;
    sp.print();
    sp.set();
    sp.print();
  3. プロジェクトを保存してビルドするには、「ファイル」>「保存」をクリックします。
  4. 「実行」>「実行」をクリックします。
  5. 「実行」ウィンドウで、「構成」リストから「C/C++ ローカル (C/C++ Local)」をダブルクリックします。
  6. 「プロジェクト」フィールドに Shapes と入力します。
  7. 「C/C++ アプリケーション」フィールドで「参照」をクリックし、Shapes\debug ディレクトリーにある Shapes.exe 実行可能ファイルを選択します。
  8. 「実行」をクリックします。

Shapes プログラムは、コンソール・ビューで実行され、 以下の出力を表示します。

Enter the radius of the sphere: 10
Enter the color of the sphere: Blue
Sphere:
	Radius = 10
	Circumference = 62.8319
	Area   = 1256.64
	Volume = 4188.79
	Color  = Blue

プログラムは、現在の形状のサイズおよび色を表示し、 新しい形状の値を指定するようにプロンプトを出します。新しい形状の属性は、 コンソール・ビューに表示されます。circle クラスを実行するように main.cpp のコードを変更することができます。

継続する場合は、『演習 3: cone クラスの作成』に進みます。