课程首页在:,内有完整教学方案及资源链接
【项目4 - 类族的设计】按下面的提示,由基类的设计和測试開始,逐渐地完毕各个类的设计,求出圆格柱体的表面积、体积并输出而且完毕要求的计算任务:
(1)先建立一个Point(点)类,包括数据成员x,y(坐标点),实现须要的成员函数,并设计main函数完毕測试; (2)以Point为基类,派生出一个Circle(圆)类,添加数据成员r(半径),以及求面积的成员函数area,实现其它须要的成员函数,设计main函数完毕測试; (3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再添加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现须要的成员函数,并设计main函数完毕測试。 要求编敲代码,设计出各类中“须要的成员函数”,包括构造函数、析构函数、改动数据成员和获取数据成员的公共接口、用于输出的重载运算符“<<”函数等。 (提示:此任务能够分为三个子任务分成若干步骤进行。先声明基类,再声明派生类,逐级进行,分步调试。——这样的方法适用于做不论什么的项目)參考解答:
(1)先建立一个Point(点)类,包括数据成员x,y(坐标点),实现须要的成员函数,并设计main函数完毕測试;
#include(2)以Point为基类,派生出一个Circle(圆)类,添加数据成员r(半径),以及求面积的成员函数area,实现其它须要的成员函数,设计main函数完毕測试;using namespace std;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坐标 friend ostream & operator<<(ostream &,const Point &);//重载运算符“<<”protected: //受保护成员 double x,y;};//Point的构造函数Point::Point(double a,double b) { x=a; y=b;}//设置x和y的坐标值void Point::setPoint(double a,double b) { x=a; y=b;}ostream & operator<<(ostream &output,const Point &p){ output<<"["< <<","< <<"]"<
#include(3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再添加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现须要的成员函数,并设计main函数完毕測试。using namespace std;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坐标 friend ostream & operator<<(ostream &,const Point &);//重载运算符“<<”protected: //受保护成员 double x,y;};//Point的构造函数Point::Point(double a,double b) { x=a; y=b;}//设置x和y的坐标值void Point::setPoint(double a,double b) { x=a; y=b;}ostream & operator<<(ostream &output,const Point &p){ output<<"["< <<","< <<"]"<
#includeusing namespace std;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坐标 friend ostream & operator<<(ostream &,const Point &);//重载运算符“<<”protected: //受保护成员 double x,y;};//Point的构造函数Point::Point(double a,double b) { x=a; y=b;}//设置x和y的坐标值void Point::setPoint(double a,double b) { x=a; y=b;}ostream & operator<<(ostream &output,const Point &p){ output<<"["< <<","< <<"]"<
=================== 迂者 贺利坚 CSDN博客专栏=================|== ==||== ==||== 我写的书——《》 ==|===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 ===== |