この演習では、ビジュアル・エディターを使用して cone クラスを作成します。 cone クラスは三次元の円錐を表します。
前の演習では、UML モデリング・ツールを使用して、circle および sphere クラスを拡張しました。この演習では、UML モデリング・ツールを使用して、プロジェクトに cone クラスを追加します。cone クラスは、shape3d クラスから継承され、円錐の半径および高さに基づいて体積および表面積を表示します。 UML モデリング・ツールを使用して、プロジェクトにクラスを追加したり、クラスに属性を追加したりすることができます。 メソッドのボディを編集するには、図内のメソッドをダブルクリックし、コード・エディターでソース・コードを編集します。
「C/C++ プロジェクト・エクスプローラー」ビューを使用して、 プロジェクトにクラスを追加することができます。 「新規 C++/クラス (New C++/Class)」ウィザードを使用して継承関係を識別できます。
これで、Shapes プロジェクトに cone クラスが追加されました。 UML モデリング・ツールを使用して、新規クラスにクラスおよび属性を追加することができます。 作成した図は次のようになります。
cone クラスは、基本形状クラスが定義する getColor および setColor メソッドを実装します。
これで、cone クラスに getColor および setColor メソッドが追加されました。
cone クラスは、基本形状クラスが定義する getSize および setSize メソッドを実装します。 サイズ・フィールドに円錐の高さが保管されます。
これで、cone クラスに getSize および setSize メソッドが追加されました。
cone クラスは、基本形状クラスが定義する getRadius および setRadius メソッドを実装します。 半径フィールドには、円錐の底の半径が保管されます。 アプリケーションはこの半径を使用して、円錐の外周および体積を計算します。
これで、cone クラスに getRadius および setRadius メソッドが追加されました。
cone クラスは、 shapes3d クラスが定義する surfaceArea (表面積) および volume (体積) メソッドを実装します。円錐の表面積の計算に使用される式は pi * r * (r + (r2 + h2)1/2) です。 円錐の体積を計算する式は 1/3 x pi x r2 h です。
これで、cone クラスに surfaceArea および volume メソッドが追加されました。
cone クラスは、基本形状クラスが定義する set および print メソッドを実装します。
{ cout << "Cone:" << "\n\tLength = " << getSize() << "\n\tArea = " << surfaceArea() << "\n\tVolume = " << volume() << "\n\tColor = " << getColor() << "\n\n"; };
これで、cone クラスに print および set メソッドが追加されました。
cone.cpp クラス・ファイルには、set メソッドの実装と、コンストラクターおよびデストラクターの実装が含まれます。set メソッドのボディを変更して、 円錐のサイズおよび半径を入力するようにプロンプトが出されるようにします。 また、新規 cone クラスの初期値を設定するようにデフォルト・コンストラクターを編集する必要もあります。
void cone::set() { double size; double radius; string color; cout << "Enter the height of the cone: "; cin >> size; setSize(size); cout << "Enter the radius of the base of the cone: "; cin >> radius; setRadius(radius); cout << "Enter the color of the cone: "; cin >> color; setColor(color); }
set メソッドを cone.cpp クラス・ファイルに追加することによって、Shapes プロジェクトが完成しました。
アプリケーションを実行する前に、main.cpp クラスに include 文を追加して、 新規 cone クラスを組み込む必要があります。main.cpp クラスを変更することで、 アプリケーションを実行して、新規 cone クラスをインスタンス化できます。
//instantiate and run the cone class cone c; c.print(); c.set(); c.print();
プログラムは、円錐形状のサイズ、色、表面積、および体積を表示し、 新しい円錐インスタンスの値を指定するようにプロンプトを出します。