C++程序设计程序代码例12.1.docVIP

  • 12
  • 0
  • 约5.28千字
  • 约 7页
  • 2018-01-01 发布于河南
  • 举报
C程序设计程序代码例12.1

C++程序设计程序代码例12.1 例12.1 先建立一个Point(点)类,包含数据成员x,y(坐标点)。以它为基类,派生出一个Circle(圆)类,增加数据成员r(半径),再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高)。要求编写程序,重载运算符“”和“”,使之能用于输出以上类对象。 对于一个比较大的程序,应当分成若干步骤进行。先声明基类,再声明派生类,逐级进行,分步调试。 (1) 声明基类Point类 可写出声明基类Point的部分如下: #include iostream //声明类Point class Point {public: Point(float x=0,float y=0);//有默认参数的构造函数 void setPoint(float,float); //设置坐标值 float getX( ) const {return x;} //读x坐标 float getY( ) const {return y;} //读y坐标 friend ostream operator(ostream ,const Point );//重载运算符“” protected: //受保护成员 float x,y; }; //下面定义Point类的成员函数 //Point的构造函数 Point::Point(float a,float b) //对x,y初始化 {x=a;y=b;} //设置x和y的坐标值 void Point::setPoint(float a,float b) //为x,y赋新值 {x=a;y=b;} //重载运算符“”,使之能输出点的坐标 ostream operator(ostream output,const Point p) {output″[″p.x″,″p.y″]″endl; return output; } 以上完成了基类Point类的声明。 现在要对上面写的基类声明进行调试,检查它是否有错,为此要写出main函数。实际上它是一个测试程序。 int main( ) {Point p(3.5,6.4);//建立Point类对象p cout″x=″p.getX( )″,y=″p.getY( )endl;//输出p的坐标值 p.setPoint(8.5,6.8); //重新设置p的坐标值 cout″p(new):″pendl; //用重载运算符“”输出p点坐标 } 程序编译通过,运行结果为 x=3.5,y=6.4 p(new):[8.5,6.8] 测试程序检查了基类中各函数的功能,以及运算符重载的作用,证明程序是正确的。 (2) 声明派生类Circle 在上面的基础上,再写出声明派生类Circle的部分: class Circle:public Point//circle是Point类的公用派生类 {public: Circle(float x=0,float y=0,float r=0); //构造函数 void setRadius(float); //设置半径值 float getRadius( ) const; //读取半径值 float area ( ) const; //计算圆面积 friend ostream operator(ostream ,const Circle );//重载运算符“” private: float radius; }; //定义构造函数,对圆心坐标和半径初始化 Circle::Circle(float a,float b,float r):Point(a,b),radius(r){ } //设置半径值 void Circle::setRadius(float r) {radius=r;} //读取半径值 float Circle::getRadius( ) const {return radius;} //计算圆面积 float Circle::area( ) const {return 3.14159*radius*radius;} //重载运算符“”,使之按规定的形式输出圆的信息 ostream operator(ostream output,const Circle

文档评论(0)

1亿VIP精品文档

相关文档