C++5週目の項目1-三角形のデザイン
3502 ワード
レッスンの最初のアドレス:http://blog.csdn.net/sxhelijian/article/details/7910565を選択します。今週のテーマリンク:http://blog.csdn.net/sxhelijian/article/details/8723847
【プロジェクト1】三角形クラスを設計し、コンストラクタを増加することにより、オブジェクトを定義時に初期化することができます。
(1)パラメータ構造関数、すなわちTriangle(double x,double y,double z)を使用して、三辺長は呼び出し時に直接に参加して与えます。
(2)デフォルトのコンストラクタを設計します。つまりパラメータを指定しない場合、デフォルトの各辺の長さは1です。
(3)デフォルトのパラメータがあるコンストラクタを使用して、パラメータを指定しない場合、デフォルトの辺の長さは1です。
(4)構造関数でパラメータ初期化テーブルを使用してデータメンバーを初期化する。
解答1: 要求を体現する1と2
【プロジェクト1】三角形クラスを設計し、コンストラクタを増加することにより、オブジェクトを定義時に初期化することができます。
#include<iostream>
using namespace std;
class Triangle
{public:
double perimeter(void);//
double area(void);//
void showMessage();
private:
double a,b,c; //
};
void Triangle:: showMessage()
{
cout<<” :”<<a<<'\t'<<<<b<<<<'\t'<<<<c<<endl;
cout<<" :"<< perimeter()<<'\t'<<" :"<< area()<<endl<<endl;
}
void main(void)
{
Triangle Tri1; // ( ), , 1
Tri1.showMessage();
Triangle Tri2(7,8,9); // ( )
Tri2.showMessage();
}
特に要求されている:構造関数の各種の書き方を全面的に理解するために、本任務は複数のバージョンのプログラムを提出することを要求しており、下記の知識点(パラメータ構造関数、デフォルトの構造関数、標準パラメータの構造関数、パラメータ初期化表を持っています。これらの概念を先に本を読んで理解しました。)を表しています。(1)パラメータ構造関数、すなわちTriangle(double x,double y,double z)を使用して、三辺長は呼び出し時に直接に参加して与えます。
(2)デフォルトのコンストラクタを設計します。つまりパラメータを指定しない場合、デフォルトの各辺の長さは1です。
(3)デフォルトのパラメータがあるコンストラクタを使用して、パラメータを指定しない場合、デフォルトの辺の長さは1です。
(4)構造関数でパラメータ初期化テーブルを使用してデータメンバーを初期化する。
解答1: 要求を体現する1と2
#include<iostream>
#include<Cmath>
using namespace std;
class Triangle
{
public:
Triangle(){a=1;b=1;c=1;} //(2) , , 1;
Triangle(double x, double y, double z) {a=x; b=y; c=z;} //(1) , Triangle(double x, double y, double z),
double perimeter(void);//
double area(void);//
void showMessage();
private:
double a,b,c; //
};
double Triangle::perimeter(void)
{
return (a + b + c);
}
double Triangle::area(void)
{
double s = (a + b + c) / 2;
return sqrt(s * (s - a) * (s - b) * (s - c));
}
void Triangle::showMessage()
{
cout<<" :"<<a<<' '<<b<<' '<<c<<endl;
cout<<" :"<<perimeter()<<' '<<" :"<<area()<<endl<<endl;
}
void main(void)
{
Triangle Tri1; // ( )
Tri1.showMessage();
Triangle Tri2(7,8,9); // ( )
Tri2.showMessage();
system("pause");
}
要求を体現しています。(3)デフォルトのパラメータの構造関数を使って、実際の参加を与えない場合、デフォルトの辺の長さは1です。また,構造関数をクラスの体外に定義した。注意:すべてのパラメータがデフォルトの値を与えているので、デフォルトのコンストラクタは再構築できません。class Triangle
{
public:
Triangle(double x=1, double y=1, double z=1);//(3) , , 1;
double perimeter(void);//
double area(void);//
void showMessage();
private:
double a,b,c; //
};
Triangle::Triangle(double x, double y, double z)
{
a=x;
b=y;
c=z;
}
要求を体現しています。(4)コンストラクションでパラメータ初期化テーブルを使ってデータメンバーを初期化します。書き方を変えるだけですが、これは一種の提唱の書き方です。class Triangle
{
public:
Triangle(double x=1, double y=1, double z=1) :a(x),b(y),c(z){} //(4)
double perimeter(void);//
double area(void);//
void showMessage();
private:
double a,b,c; //
};
または、クラス外で定義する場合:Triangle::Triangle(double x, double y, double z):a(x),b(y),c(z){} //(4) 。
【プロジェクト1開拓(選択)】長方形類を自分で設計してください。矩形の面積、周囲、対角線を計算して、正方形かどうかを判断します。似たようなコンストラクタを使って、自分でメーン関数を設計して、デザインの種類をテストしてください。