源程序:
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:三角形类之默认参数的构造函数
* 作 者: 114-3 张宗佳
* 完成日期: 2012 年 3 月 19 日
* 版 本 号: vc.4
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:使用默认参数的构造函数,不给定实参时,默认边长为1
* 程序输出:输出三角形的三边,周长和面积
* 程序头部的注释结束
*/
#include<iostream>
#include<cmath>
using namespace std;
class Triangle
{
public:
Triangle(float x = 1,float y = 1,float z = 1);//带默认参数的构造函数
float perimeter(void);//计算三角形的周长
float area(void);//计算三角形的面积
void showMessage();
private:
float a,b,c;
};
int main()
{
Triangle Tri1;//定义三角形类的一个实例(对象)
Tri1.showMessage();
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.在定义对象时,如果没有给出实参,那么系统就调用默认构造函数,如果给定实参,实参则按顺序将值传递给形参,如在定义Tri2时只给顶一个实参2,则三角形的三边就成 了2,1,1,当然这三边无法构成三角形,因为在此程序中没有定义判断三角形的函数