多态性(纯虚函数与抽象类)
来源:互联网 发布:淘宝描述不符怎么申诉 编辑:程序博客网 时间:2024/05/01 13:35
将一个虚函数初始化为0之后,该函数就变成了纯虚函数。如:
viurtual double area() = 0;
这个虚函数是无任何的功能,不能直接来调用,因为它是抽象的,只有被子类继承并赋予功能后才可调用。一个类可以有多个纯虚函数,但是只要有一个纯虚函数给类就是抽象类。
抽象类只是一个概念,就如同人类一样,没有任何的功能,人类这个概念不能吃饭,不能睡觉,只有实体的人才可以具有以上的功能。再比如书中所提到的自行车,你是不能骑的,这只是一个概念。下面我们通过一个程序来说明纯虚函数与抽象类的应用。
#include<iostream>using namespace std;class shape{public:virtual double area() = 0;};class A :public shape //三角形公有继承{protected:double h,w;public:A(double H,double W){h = H;w = W;}double area(){return h*w/2;}};class B : public A//长方形共有继承于三角形{public:B(double H,double W):A(H,W)//构造函数{}double area(){return h*w;}};class C :public shape //圆的继承与实现{protected:double radius;public:C(double r){radius = r;}double area(){return radius * radius * 3.14;}};void main(){shape *s = 0;int choice = 0;while(choice < 9){bool quit = false;cout<<"(0)退出(1)三角形(2)长方形(3)圆"<<endl;cout<<"请选择";cin>>choice;switch(choice){case 0:quit = true;break;case 1:s = new A(5.0,6.0);cout<<"三角形面积"<<s->area()<<endl;break;case 2:s = new B(70.0,80.0);cout<<"长方形的面积"<<s->area()<<endl;break;case 3:s = new C(9.0);cout<<"圆的面积"<<s->area()<<endl;break;default:cout<<"请输入0到3的数字";break;}if(choice<4 && choice >0 )delete s;if(quit)break;}}
- 多态性(纯虚函数与抽象类)
- 多态性:纯虚函数和抽象类
- 虚函数,虚析构函数,纯虚函数,多态性,抽象类。
- 【原创】多态性、动态多态性、静态多态性、虚函数、纯虚函数、抽象类总结
- 多态性,虚函数,纯虚函数,抽象类 .
- C++-虚函数,多态性,纯虚函数,抽象类
- 第12周-程序阅读-多态性与抽象类-纯虚函数
- 多态性,虚函数与抽象类
- 读书笔记--C++程序设计(第2版)--12多态性与虚函数(虚析构函数,纯虚函数与抽象类)
- C++编程入门系列之四十九(多态性:纯虚函数和抽象类)
- 虚函数与多态性、纯虚函数
- 虚函数与多态性 纯虚函数
- 虚函数与多态性/纯虚函数
- 虚函数与多态性,纯虚函数
- 虚函数-虚表-虚指针-多态性-如何实现多态-纯虚函数-抽象类(转呀转)
- C++ 抽象类(虚函数与纯虚函数)
- 多态性 虚函数 抽象类
- 虚函数-虚表-虚指针-多态性-如何实现多态-纯虚函数-抽象类-转
- 互联网枭雄点评之周鸿祎 - 不甘老去的互联网老兵
- Python_python/django连接mysql安装与配置
- Objective-C的单例模式(singleton)
- 华为笔试面试题大全
- Oracle 10g RAC Server-Side TAF配置
- 多态性(纯虚函数与抽象类)
- 【解题报告】HDU 1874 畅通工程续 -- Dijkstra算法详解 单源点最短路问题
- windows 2008环境下利用IIS7.5部署web应用程序
- NuGet 是个什么玩意?
- 你的上司属于那种类型的领导?
- AudioQueue Programming Guide [Apple Document]
- 线程退出死锁的问题解决
- EA经典教程
- 恶意代码的亲密接触之病毒编程技术