設計三角形類,通過增加構造函數,使對象在定義時能夠進行初始化
特別要求:爲全面體會構造函數的各種寫法,本任務要求提交多個版本的程序,體現出你已經掌握下列知識點:(1)使用帶參數構造函數,即Triangle(float x, float y, float z),三邊長在調用時由實參直接給出;(2)設計默認構造函數,即不指定參數時,默認各邊長爲1;(3)使用默認參數的構造函數,不給定實參時,默認邊長爲1;(4)在構造函數中使用參數初始化表對數據成員初始化。
時間:2012年3月19日 學生:114-4班 張馨![]()
#include<iostream>
#include <cmath>
using namespace std;
class Triangle
{public:
Triangle();
Triangle(float,float,float);
float Perimeter(void);//計算三角形的周長
float area(void);//計算並返回三角形的面積
void showMessage();
private:
float a,b,c;//三邊爲私有成員數據
};
void Triangle::showMessage()
{
cout<<"三角形的三邊長分別爲:"<<a<<'\t'<<b<<'\t'<<c<<endl;
cout<<"三角形的周長爲:"<<Perimeter()<<'\t'<<"面積爲:"<<area()<<endl<<endl;
}
void main(void)
{
Triangle Tri1;//定義三角形類的一個實例(對象)
Tri1.showMessage();
Triangle Tri2(7,8,9);//定義三角形類的一個實例(對象)
Tri2.showMessage();
}
Triangle::Triangle()
{
a=1;
b=1;
c=1;
}
Triangle::Triangle(float x, float y,float z)
{
a=x;
b=y;
c=z;
}
float Triangle::Perimeter(void)
{
return (a+b+c);
}
float Triangle::area(void)
{
float l,s1,s;
l=(a+b+c)/2;
s1=(l-a)*(l-b)*(l-c)*l;
s=sqrt(s1);
return s;
}
上機感言:這次任務相對簡單些,只是活學課本上的東西,在面向對象的過程中靈活使用構造函數這一項技能,還需要多看課本呀。