C++ 设计抽象基类的策略
来源:互联网 发布:在线源码编辑器 编辑:程序博客网 时间:2024/05/18 00:38
(1)分析相关对象的需求,设计出一组实现公共功能的函数。
(2)将这些函数作为基类的虚函数(或纯虚函数),它们定义了一个
统一的公共接口。
(3)由该类基类派生出若干子类,在各子类中实现这些虚函数。
#include<iostream>using namespace std;class Container //抽象类{protected:double radius;public:Container(double radius){Container::radius = radius;}virtual double surface_area()=0;//纯虚函数virtual double volume()=0;//纯虚函数};class Cube:public Container{public:Cube(double radius):Container(radius){}double surface_area(){return radius*radius*6;}double volume(){return radius*radius*radius;}};class Sphere:public Container{public:Sphere(double radius):Container(radius){}double surface_area(){return radius*radius*3.14;}double volume(){return 3.1416*radius*radius*radius*4/3;}};class Cylinder:public Container{double height;public:Cylinder(double radius, double height):Container(radius){Cylinder::height = height;}double surface_area(){return 2*3.1416*radius*(height+radius);}double volume(){return 3.1416*radius*radius*height;}};int main(){Container *p;Cube obj1(5);Sphere obj2(5);Cylinder obj3(5,5);p = &obj1;cout<<"正方体表面积:"<<p->surface_area()<<endl;cout<<"正方体体积:"<<p->volume()<<endl;p = &obj2;cout<<"球体表面积:"<<p->surface_area()<<endl;cout<<"球体体积:"<<p->volume()<<endl;p = &obj2;cout<<"圆柱体表面积:"<<p->surface_area()<<endl;cout<<"圆柱体体积:"<<p->volume()<<endl;return 0;}
0 0
- C++ 设计抽象基类的策略
- C#:抽象类的学习
- 策略模式接口和抽象类的简单实现
- 策略设计模式:把可变的行为抽象出来形成一个算法簇
- 设计模式的实现(C++)------抽象工厂模式(AbstractFactory)
- 访问所有数据库抽象类的设计
- 接口和抽象类的设计
- 抽象类的实际应用--模板设计
- 抽象类的应用--模板设计
- 抽象数据类型的设计
- 数据库的抽象设计
- 策略类服务的设计实践
- C++:抽象基类和纯虚函数的理解
- C++:抽象基类和纯虚函数的理解
- C++:抽象基类和纯虚函数的理解
- c++------------之---【虚函数和抽象基类的应用】
- 设计模式之_简单工厂模式、工厂方法模式、抽象工厂模式、策略模式、策略与工厂的区别(转) 的区别(转)
- 怎样设计抽象类
- mysql模拟题二
- IPC多核入门编程C6657双核启动问题小结
- iOS 推送通知详解
- 网络游戏服务器架构设计
- 配置Jenkins的slave节点的详细步骤适合windows等其他平台
- C++ 设计抽象基类的策略
- 李小琳低调现身两会 手拿环保袋参加讨论
- Notification通知未显示
- 6.6 Executing Non-UI Related Tasks Synchronously with GCD
- Hive中小表与大表关联(join)的性能分析
- Apache 门户项目组介绍
- eclipse调优
- 编程之美:NIM(1)一排石头的游戏
- 浅析Android MediaProvider之二