第五周项目一----通过增加构造函数使对象在定义时初始化(4种方法统编)

来源:互联网 发布:员工管理系统java和sql 编辑:程序博客网 时间:2024/06/05 03:17
/** 程序的版权和版本声明部分* Copyright (c)2013, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: 三角形类.cpp* 作者:    赵晓晨* 完成日期: 2013 年3 月29日* 版本号: v1.0* 输入描述:无* 问题描述:声明默认构造函数,求三角形周长和面积的类。* 程序输出:三角形的周长和面积*///1.使用带参构造函数,即Triangle(double x,double y,double z),三边长在调用时由实参直接给出;#include<iostream>#include<Cmath>using namespace std;class Triangle{    public:    Triangle(double x,double y,double z);   //声明带参数的构造函数    double perimeter(void);  //计算三角形周长    double area(void);  //计算并返回三角形的面积    void showMessage();    private:    double a,b,c;   //三边为私有成员数据};Triangle::Triangle(double x,double y,double z)//三边在调用时由实参直接给出{    a=x;b=y;c=z;}double Triangle::perimeter(){    return (a+b+c);}double Triangle::area(){    int q=(a+b+c)/2;    return sqrt(q*(q-a)*(q-b)*(q-c));}void Triangle::showMessage(){    cout<<"三角形的三条边长分别是:"<<a<<'\t'<<b<<'\t'<<c<<endl;    cout<<"该三角形的周长是:"<<perimeter()<<'\t'<<"面积是:"<<area()<<endl<<endl;}int main(void){    Triangle Tri1;   //定义三角心类的一个实例,要求执行一个默认构造函数,三边初值均为1    Tri1.showMessage();    Triangle Tri2(7,8,9);   //定义三角形类的实例    Tri2.showMessage();return 0;}//2.设计默认构造函数,既不指定参数时,默认各边长为1;#include<iostream>#include<Cmath>using namespace std;class Triangle{    public:           Triangle()//定义构造成员函数,函数名与类名成员相同    {        a=1;         //定义构造函数对对象中的数据成员赋值        b=1;        c=1;    }    Triangle(double x,double y,double z): a(x),b(y),c(z){}  //声明默认构造函数    double perimeter(void);    double area(void);    void showMessage();    private:            double a,b,c;};double Triangle::perimeter(){    return (a+b+c);}double Triangle::area(){    double q=(a+b+c)/2;    return sqrt(q*(q-a)*(q-b)*(q-c));}void Triangle::showMessage(){    cout<<"三角形的三条边长分别是:"<<a<<'\t'<<b<<'\t'<<c<<endl;    cout<<"该三角形的周长是:"<<perimeter()<<'\t'<<"面积是:"<<area()<<endl<<endl;}int main(void){    Triangle Tri1;       //定义三角心类的一个实例,要求执行一个默认构造函数,三边初值均为1    Tri1.showMessage();    Triangle Tri2(7,8,9);   //定义三角形类的实例    Tri2.showMessage();return 0;}//3.使用有默认参数的构造函数,不给定实参时,默认边长为1;#include<iostream>#include<Cmath>using namespace std;class Triangle{    public:Triangle(double x=1,double y=1,double z=1);    double perimeter(void);    double area(void);    void showMessage();    private:            double a,b,c;};Triangle::Triangle(double x,double y,double z)//三边在调用时由实参直接给出{    a=x;b=y;c=z;}double Triangle::perimeter(){    return (a+b+c);}double Triangle::area(){    double q=(a+b+c)/2;    return sqrt(q*(q-a)*(q-b)*(q-c));}void Triangle::showMessage(){    cout<<"三角形的三条边长分别是:"<<a<<'\t'<<b<<'\t'<<c<<endl;    cout<<"该三角形的周长是:"<<perimeter()<<'\t'<<"面积是:"<<area()<<endl<<endl;}int main(void){    Triangle Tri1;       //定义三角心类的一个实例,要求执行一个默认构造函数,三边初值均为1    Tri1.showMessage();    Triangle Tri2(7,8,9);   //定义三角形类的实例    Tri2.showMessage();return 0;}//4.在构造参数中使用参数初始化表对数据成员初始化#include<iostream>#include<Cmath>using namespace std;class Triangle{    public:    Triangle(double x,double y,double z): a(x),b(y),c(z){}//参数初始化表    double perimeter(void);  //计算三角形周长    double area(void);  //计算并返回三角形的面积    void showMessage();    private:        double a,b,c;   //三边为私有成员数据};double Triangle::perimeter(){    return (a+b+c);}double Triangle::area(){    int q=(a+b+c)/2;    return sqrt(q*(q-a)*(q-b)*(q-c));}void Triangle::showMessage(){    cout<<"三角形的三条边长分别是:"<<a<<'\t'<<b<<'\t'<<c<<endl;    cout<<"该三角形的周长是:"<<perimeter()<<'\t'<<"面积是:"<<area()<<endl<<endl;}int main(void){    Triangle Tri1;   //定义三角心类的一个实例,要求执行一个默认构造函数,三边初值均为1    Tri1.showMessage();    Triangle Tri2(7,8,9);   //定义三角形类的实例    Tri2.showMessage();return 0;}


结果:

体会:

晕了。。。。。。。。求质量吧,真心想把这门课程学好,加油吧菜鸟晨晨。

原创粉丝点击