設計三角形類(使用默認參數的構造函數)

 

/* (程序頭部註釋開始)
* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙臺大學計算機學院學生 
* All rights reserved.
* 文件名稱:                              
* 作    者:  吳瑕                            
* 完成日期:  2012       年   03    月   19    日

* 版 本 號:         

* 對任務及求解方法的描述部分
* 輸入描述: 
* 問題描述: */設計三角形類,通過增加構造函數,使對象在定義時能夠進行初始化

 

#include<iostream>
#include<cmath>
using namespace std;
class Triangle
{public:
    Triangle(float x=1,float y=1,float z=1);//聲明帶參數的默認構造函數併爲其賦初值
	float perimeter();//計算三角形的周長
	float area();//計算並返回三角形的面積
	void showMessage();
	
private:
	float a,b,c; //三邊爲私有成員數據
};

void Triangle::showMessage()
{
	cout<<"三角形的三邊長分別爲:"<<a<<'\t'<<b<<'\t'<<c<<endl;
	cout<<"該三角形的周長爲:"<< perimeter()<<'\t'<<"面積爲:"<< area()<<endl;
}

void main()
{
	Triangle Tri1;	//定義三角形類的一個實例(對象)(不用傳遞實參)
	Tri1.showMessage();
//	Triangle Tri2 (7,8,9);	//定義三角形類的一個實例(對象)
//	Tri2.showMessage();

}
Triangle::Triangle(float x,float y,float z)//在類外定義帶參數的構造函數
{
	a=x;
	b=y;
	c=z;
}


float Triangle::perimeter()
{
	return(a+b+c);
}
float Triangle::area()
{
	float p,s;
	p=(a+b+c)/2;
	s=sqrt(p*(p-a)*(p-b)*(p-c));
	return s;
}

運行結果:


 

上機心得:

默認參數的構造函數其實質意義即爲他也是一默認構造函數,無參數,當在類中聲明構造函數時可以省略其變量名。他和帶參數的默認構造參數的區別在於:他可以帶調用時不用傳遞實參,因爲已經值默認。

 


 

發佈了54 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章