第十三周【任务四】 设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数
2012-05-15 15:37
861 查看
【任务4】设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义基类的指针p(CSolid *p;),利用p指针,输出正方体、球体及圆柱体对象的表面积及体积。
#include "iostream" using namespace std; double const PI=3.1415926; class CSolid { public: virtual double area() = 0; virtual double volume() = 0; }; class CCube:public CSolid { public: CCube(double w):width(w){} virtual double area() { return 6*width*width; } virtual double volume() { return width*width*width; } protected: double width; }; class CBall:public CSolid { public: CBall(double r):radius(r){} virtual double area() { return 4*PI*radius*radius; } virtual double volume() { return 4/3*PI*radius*radius*radius; } protected: double radius; }; class CCylinder:public CSolid { public: CCylinder(double r,double h):radius(r),height(h){} virtual double area() { return PI*radius*radius*2+2*PI*radius*height; } virtual double volume() { return PI*radius*radius*height; } protected: double height; double radius; }; int main() { CCube c1(2); CBall c2(38); CCylinder c3(18.2,2.5); CSolid *p; p = &c1; cout << "正方体的表面积为:" << p->area() << endl; cout << "正方体的体积为:" << p->volume() << endl; cout << endl; p = &c2; cout << "球的表面积为:" << p->area() << endl; cout << "球的体积为:" << p->volume() << endl; cout << endl; p = &c3; cout << "圆柱体的表面积为:" << p->area() << endl; cout << "圆柱体的体积为:" << p->volume() << endl; cout << endl; system("pause"); return 0; }
积累经验: 学会了如何定义基类的指针。
主函数中p = &c1; 引用的只能是对象,而不能引用类。
老师这些地方 virtual double area() const = 0; 有必要都加上const 吗???有神吗 意义呢
相关文章推荐
- 第十三周实验--任务4--设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。
- C++第十三周【任务4】设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数,同时设计个派生类CCube、CBall、CCylinder
- 第十三周 任务四 设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数
- 《C++第十三周实验报告4-1》---设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。 设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。
- 第十三周任务四(抽象类CSolid,含有两个求表面积及体积的纯虚函数。设计个派生类CCube、CBall、CCylinder)
- 第13周任务4(设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体)
- 十三周任务四:设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数
- 第十三周实验报告(任务四)【抽象类CSolid,含有两个求表面积及体积的纯虚函数】
- 十四周项目三设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数(第一次做完老师发的试题,还有时间做OJ上面的题,贵在坚持)
- 设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p
- 设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p
- 十三周(四)设计抽象类CSolid,含有两个求表面积和体积的纯虚函数
- 第十三周实验报告(四)设计抽象类CSolid含有两个求表面积和体积的虚函数
- 第十三周【任务二】Animal设计为抽象类,每一个Animal的派生类都有一个“名字”数据成员
- 设计一个“航空器”抽象类,由它派生出两个子类:“运输机”类和“客机”类
- 再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main
- 用抽象类设计计算二维平面图形面积的程序,在基类TDshape中设计纯虚函数area()和printName()......C++的158页5题
- C#--第11周实验--任务3--设计一个窗体,窗体上有两个文本框,一个按钮,2个单选按钮--实现单击按钮后,根据单选按钮,将对应文本框中内容显示在标签。
- 用抽象类设计计算二维图形面积的程序,在基类TDshape中设计纯虚函数area()和printName().are()用于计算图形的几何面积,printName()用于打印输出几何图形的类名
- 第六周实验指导--任务四--设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长。