题目
编写程序。编写计算圆环面积的C++程序。要求:先设计一个圆形类Circle,再基于类Circle使用继承的方法定义一个圆环类Ring。圆环可认为是在圆形基础上再增加一个描述线宽的属性,即带边框的圆形。然后编写一个主函数,简单测试派生类对象的功能。
答案
#include <iostream>
#define PI 3.1415926
class Circle
{
private:
double R;
public:
Circle() {R = 0;}
Circle(const double r) {R = r;}
Circle(const Circle &circle) {R = circle.R;}
void setR(const double r) {R = r;}
double getR() const {return R;}
double getArea() const {return PI*R*R;}
double getPerimeter() const {return PI*2*R;}
};
class Ring: public Circle
{
private:
double Width;
public:
Ring(const double r, const double w) : Circle(r){Width = w;}
double getArea() const {return PI*(getR()*getR()-Width*Width);}
};
int main()
{
double R, Width;
std::cin>> R >> Width;
Ring r1(R, Width);
std::cout << "面积: " << r1.getArea() << std::endl;
return 0;
}