问题及代码:
/*
*Copyright(c)2016,烟台大学计算机与控制工程学院
*All right reserved.
*文件名称:77.cpp
*作 者:董凯琦
*完成日期:2016年3月30日
*版 本 号:v1.0
*
*问题描述:使用复制构造函数,能用一个已有的三角形对象,复制出新的三角形对象
*输入描述:无
*程序输出:三角形的周长以及面积
*/
#include<iostream>
#include<cmath>
using namespace std;
class Triangle
{
public:
Triangle(double x=1,double y=1,double z=1);
Triangle(const Triangle &t);
double perimeter();
double area();
void showMessage();
private:
double a,b,c;
};
Triangle::Triangle(double x, double y, double z)
{
a=x;
b=y;
c=z;
}
Triangle::Triangle(const Triangle &t)
{
a=t.a;
b=t.b;
c=t.c;
}
double Triangle::perimeter()
{
return (a+b+c);
}
double Triangle::area()
{
double p=(a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
void Triangle::showMessage()
{
cout<<"三角形的三边长为:"<<a<<","<<b<<","<<c<<endl;
cout<<"该三角形的周长为"<<perimeter()<<"面积为"<<area()<<endl;
}
int main()
{
Triangle Tri1(3,4,5);
Tri1.showMessage();
Triangle Tri2(Tri1);
Tri2.showMessage();
return 0;
}
运行结果:
知识点总结:
从这个程序中,我们学会了如何使用复制构造函数。
学习心得:
要注意复制构造函数的定义!