定义一个圆类(Circle),属性为半径(radius)、圆周长和面积,操作为输入半径并计 算周长、面积,输出半径、周长和面积。要求定义构造函数(以半径为参数,缺省值为 0, 周长和面积在构造函数中生成)和拷贝构造函数。 解:通常所有数据成员都在构造函数中赋初值。拷贝构造函数以本类的引用为参数。
#include<iostream>
#include<cmath>
using namespace std;
class Circle
{
double r,Area,Circumference;
public:
Circle(double a=0);
Circle(Circle &);
void SetR(double R);
double GetR(){return r;}
double GetAreaCircle(){return Area;}
double GetCircumference(){return Circumference;}
};
Circle::Circle(double a)
{
r=a;
Area=r*r*3.14159265;
Circumference=2*r*3.14159265;
}
Circle::Circle(Circle & cl)
{
r=cl.r;
Area=cl.Area;
Circumference=cl.Circumference;
}
void Circle::SetR(double R)
{
r=R;
Area=r*r*3.14159265;
Circumference=2*r*3.14159265;
}
int main()
{
Circle cl1(2),cl2,cl3=cl1;
cout<<"圆半径:"<<cl3.GetR()<<'\t'<<"圆周长:"<<cl3.GetCircumference()<<'\t'<<"圆面积:"<<cl3.GetAreaCircle()<<endl;
cl2.SetR(4);
cout<<"圆半径:"<<cl2.GetR()<<'\t'<<"圆周长:"<<cl2.GetCircumference()<<'\t'<<"圆面积:"<<cl2.GetAreaCircle()<<endl;
return 0;
}