问题及代码:
/*
*copyright(c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:test.cpp
*作者:崔青青
*完成日期:2016年3月26日
*问题描述:使用复制构造函数,能用一个已有的三角形对象,复制出新的三角形对象。
*输入:无
*程序输出:三角形的周长和面积
*/
#include <iostream>
#include<cmath>
using namespace std;
class triangle
{
public:
triangle(double x,double y,double z);
triangle(triangle &t);
void showmessage();
double perimeter();
double area();
private:
double a,b,c;
};
triangle::triangle(double x,double y,double z)
{
if(x+y>z&&x+z>y&&z+y>x)
{
a=x;b=y,c=z;
}
else
cout<<"wrong"<<endl;
}
triangle::triangle(triangle &t)
{
a=t.a;
b=t.b;
c=t.c;
}
void triangle::showmessage()
{
cout<<"三角形三边长为:"<<a<<','<<b<<','<<c<<endl;
}
double triangle::perimeter()
{
double per;
per=a+b+c;
return per;
}
double triangle::area()
{
double p;
p=(a+b+c)/2;
p=p*(p-a)*(p-b)*(p-c);
return sqrt(p);
}
int main()
{
triangle tri1(3,4,5);
tri1.showmessage();
cout<<"三角形的周长为:"<<tri1.perimeter()<<'\t'<<"面积为:"<<tri1.area()<<endl;
triangle tri2(tri1);
tri2.showmessage();
cout<<"三角形的周长为:"<<tri2.perimeter()<<'\t'<<"面积为:"<<tri2.area()<<endl;
return 0;
}
运行结果:
知识点总结:
复制构造函数的使用。
学习心得:
用复制构造函数简单快捷。