源程序:
/* (程序頭部註釋開始)
* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙臺大學計算機學院學生
* All rights reserved.
* 文件名稱:三角形類之參數初始化表的構造函數
* 作 者: 114-3 張宗佳
* 完成日期: 2012 年 3 月 19 日
* 版 本 號: vc.4
* 對任務及求解方法的描述部分
* 輸入描述:
* 問題描述:在構造函數中使用參數初始化表對數據成員初始化。
* 程序輸出:輸出三角形的三邊,周長和麪積
* 程序頭部的註釋結束
*/
#include<iostream>
#include<cmath>
using namespace std;
class Triangle
{
public:
Triangle(float,float,float);//帶參數的構造函數
float perimeter(void);//計算三角形的周長
float area(void);//計算三角形的面積
void showMessage();
private:
float a,b,c;
};
int main()
{
Triangle Tri2(7,8,9);//定義三角形類的一個實例
Tri2.showMessage();
return 0;
}
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 cos, sin, s;
cos = (a * a + c * c - b * b) / (2 * a * c);
sin = sqrt (1 - cos * cos);
s = a * c * sin / 2;
return s;
}
void Triangle::showMessage()
{
cout << "三角形的三邊長分別爲:" << a << '\t' << b << '\t' << c << endl;
cout << "三角形的周長爲:" << perimeter() << "三角形的面積:" << area() << endl;
return ;
}
實驗結果:
經驗積累:
1.參數初始化表對函數體內數據成員的初始化實在函數首部實現的
2.使用參數初始化表的構造函數可以在類內定義,也可以在類外定義,在類外定義一定要用域限定符
3.在使用參數初始化表時,可以直接附初值,但是在定義對象時給出的是殘就不管用了