第十周-圆类族的设计项目

来源:互联网 发布:淘宝网百丽 编辑:程序博客网 时间:2024/05/19 14:38

问题及代码:

/*copyright  计算机与控制工程学院完成日期:2016年5月6日作者:马艳艳问题描述:以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试; 输入描述:无输出描述:坐标值 ;*/#include <iostream>using namespace std;const float PI=3.1415926;class Point{public:    Point(double x=0,double y=0);                    //构造函数    void setPoint(double,double);                  //设置坐标值    double getX( ) const {return x;}              //x坐标    double getY( ) const {return y;}              //y坐标    void show();                                       //受保护成员    double x,y;};Point::Point(double a,double b){    x=a;    y=b;}//设置x和y的坐标值void Point::setPoint(double a,double b){    x=a;    y=b;}void Point::show(){    cout<<"("<<x<<","<<y<<")"<<endl;}class Circle:public Point{    private:    double r;    public:        Circle (double x=0,double y=0,double r=0);        void setR(double);        double area()const;        void show();};Circle ::Circle(double a,double b,double r):Point (a,b),r(r){}//设置圆的构造函数void Circle::setR(double  r){    this->r=r;}double Circle::area()const{    return PI*r*r;//求圆的面积}void Circle ::show(){    cout<<"圆心坐标为:"<<endl;    cout<<"("<<x<<","<<y<<")"<<endl;    cout<<"半径为:"<<endl;    cout<<r<<endl;}int main( ){    Circle c(3.1,4.5,2.1);    c.show();    c.setPoint(5,8);    c.show();    return 0;}

运行结果:


知识点总结:

在Point 做Circle的基类时,若Circle要访问基类的私有成员是不可实现的,这时要将原先的私有成员定义为保护类或公有类

0 0
原创粉丝点击