源程序:
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* 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.在使用参数初始化表时,可以直接附初值,但是在定义对象时给出的是残就不管用了