实验十六 继承
2)定义一个图形类,其中有保护类型的成员数据:高度和宽度,一个公有的构造函数。由该图形类建立两个派生类:矩形类和等腰三角形类。在每个派生类中都包含一个函数area(),分别用来计算矩形和等腰三角形的面积。
#include using namespace std; class figure { protected: double height,width; public: figure(double=0,double=0); }; figure::figure(double h,double w) { height=h; width=w; } class triangle:public figure { public: double area(); triangle(double=0,double=0); }; triangle::triangle(double h,double w):figure(h,w) { height=h; width=w; } double triangle::area() { return 0.5*height*width; } class rectangle:public figure { public: double area(); rectangle(double=0,double=0); }; rectangle::rectangle(double h,double w):figure(h,w) { height=h; width=w; } double rectangle::area() { return height*width; } int main() { triangle tri(2,3); rectangle rec(2,3); cout<<\"The area of triangle is:\"< } 3)编写一个程序计算出圆和圆柱体的表面积和体积。 要求: (1) 定义一个点(point)类,包含数据成员x,y(坐标点),以它为基类,派生出一个circle类(圆类),增加数据成员(半径)r,再以circle作为直接基类,派生出一个cylinder(圆柱体)类,再增加数据成员h(高)。设计类中数据成员的访问属性。 (2) 定义基类的派生类圆、圆柱都含有求表面积和体积的成员函数和输出函数。 (3) 定义主函数,求圆、圆柱的面积和体积。 #include using namespace std; const double PI=3.141592653; class point { protected: double X,Y; public: point(double x=0,double y=0) {X=x;Y=y;} void getXY() { cout<<\"Please input X:\"; cin>>X; cout<<\"Please input Y:\"; cin>>Y; } void show() { cout<<\"The coordinate of the point is:(\"< }; class circle:protected point { protected: double radius; public: circle(double x=0,double y=0,double r=0):point(x,y) {X=x;Y=y;radius=r;} void getXYradius() { circle::getXY(); cout<<\"Please input radius:\"; cin>>radius; } double area() {return PI*radius*radius;} }; class cylinder:protected circle { protected: double height; public: cylinder(double x=0,double y=0,double r=0,double h=0):circle(x,y,r) {X=x;Y=y;radius=r;height=h;} void getdata() { circle::getXYradius(); cout<<\"Please input the height:\"; cin>>height; } double area() { return PI*radius*radius*2+2*PI*radius*height; } double V() { return PI*radius*radius*height; } }; int main() { circle ci; cylinder cy; ci.getXYradius(); cy.getdata(); cout<<\"The area of the circle is:\"< 实验总结: 1.个人感觉面向对象比面向过程更加直观。 2.就是因为面向对象的思路是用程序语言直接描述客观世界,它程序的长度会更长,但是一个大程序会被分割成多个小部分,每一部分分开编程,然后再调试各个部分的连接情况,当程序比较大的时候,工作量其实相对更小。 因篇幅问题不能全部显示,请点此查看更多更全内容