第13周项目3-立体类族共有的抽象类
来源:互联网 发布:淘宝卖的好的飞机杯 编辑:程序博客网 时间:2024/04/30 11:21
/* *All rights reserved. *文件名称:main.cpp *作 者:姜 甜 甜 *完成日期:2015年6月1日 *版 本 号:v1.0 *问题描述:设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。 */
#include<iostream>using namespace std;class CSolid{public: virtual void s()const=0; virtual void v()const=0;};class Cube:public CSolid{public: Cube(double a):r(a){} virtual void s()const { cout<<"s:"<<6*r*r<<endl; } virtual void v()const { cout<<"v:"<<r*r*r<<endl; }protected: double r;};class Ball:public CSolid{public: Ball(double a):r(a){} virtual void s()const { cout<<"s:"<<4*3.1415*r*r<<endl; } virtual void v()const { cout<<"v:"<<4/3*3.1415*r*r*r<<endl; }protected: double r;};class Cylinder:public CSolid{public: Cylinder(double a,double b):r(a),h(b){} virtual void s()const { cout<<"s:"<<2*3.1415*r*r+2*3.1415*r*h<<endl;; } virtual void v()const { cout<<"v:"<<3.1415*r*r*h<<endl; }protected: double r,h;};int main(){ CSolid *p; Cube a(2); Ball b(2); Cylinder c(2,4); p=&a; p->s(); p->v(); p=&b; p->s(); p->v(); p=&c; p->s(); p->v(); return 0;}笔会:虚函数。指向p->b.不能写p.b 会出现:
\桌面\12\main.cpp|62|error: request for member 'v' in 'p', which is of pointer type 'CSolid*' (maybe you meant to use '->' ?)|
0 0
- 第13周项目3立体类族共有的抽象类
- 第13周-多态性-项目3-立体类族共有的抽象类
- 第13周项目3—立体类族共有的抽象类
- 第13周上机实践项目3——立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 第13周 【项目3-立体类族共有的抽象类】
- 第13周项目3-立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 第13周 项目3 立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 第13周项目3 立体类族共有的抽象类
- C++第13周项目 多态性 【项目4-立体类族共有的抽象类】
- 第13周实践项目4立体类族共有的抽象类
- 第13周-项目4-立体类族共有的抽象类
- 第13周项目4-立体类族共有的抽象类
- 第13周项目4-立体类族共有的抽象类
- ListView中嵌套RadioButton按钮
- 【C#总结】setter和getter方法 ToString方法
- OpenLayers学习笔记1——实现WMTS的逐级无缝缩放
- iOS之CALayer介绍
- XMPP之tigase源码部署
- 第13周项目3-立体类族共有的抽象类
- C#中ref和out的区别浅析
- hdu 阿牛的EOF牛肉串 (java)
- [SPFA+路径输出] ZOJ3088 Easter Holidays
- KVC的简单用法
- jedis连接池
- hdu 神、上帝以及老天爷 java
- SQL Server 2005分页存储过程
- 百度李彦宏:互联网的未来发展有两种结局