第五周任务一之默认构造函数和带参数的构造函数

来源:互联网 发布:淘宝1元包邮专区 编辑:程序博客网 时间:2024/05/11 14:35

源程序:

/* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称:三角形类之默认构造函数和带参数的构造函数                              * 作    者:  114-3 张宗佳                            * 完成日期:  2012 年 3  月 19 日* 版 本 号: vc.4         * 对任务及求解方法的描述部分* 输入描述:* 问题描述:(1)使用带参数构造函数,即Triangle(float x, float y, float z),三边长在调用时由实参直接给出;            (2)设计默认构造函数,即不指定参数时,默认各边长为1;  * 程序输出:输出三角形的三边,周长和面积 * 程序头部的注释结束*/#include<iostream>#include<cmath>using namespace std;class Triangle{public:Triangle(float,float,float);//带参数的构造函数Triangle();//默认构造函数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(){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 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.构造函数的名字必须与类名同名,而且它不具有任何类型,不返回任何职,在类外定义时,要有域限定符,如

Triangle::Triangle()
2.带参数的构造函数与默认构造函数不同,默认构造函数不带参数,在定义时直接给出默认值

3.带参数的构造函数中的形参,其对应的实参在定义对象时给定