c++中的抽象类
来源:互联网 发布:放置类挂机游戏源码 编辑:程序博客网 时间:2024/06/14 04:55
在面向对象的编程过程中,有些类的创建是毫无意义的,它的概念是抽象的,比如动物,电器,人这样类,比如到商店给店员说我要买一台电器。编程过程中可以将这些类设置为抽象类,以防止它们创建对象。
只要一个类中出现纯虚函数,那么这个类就是抽象类。
Class Animal{
Public:
virtual void show() = 0;//纯虚函数的表达
};
抽象类除了不能实例化之外,和其他类没有任何区别。
/**/#include <iostream>#include <string>using namespace std;class Animal{string name;int age;public:Animal(string name = "",int age=0):name(name),age(age){//cout << ""}/*纯虚函数*/virtual void fun() = 0;/*普通函数*/void show(){cout << name<<":"<<age<<endl;}};class Dog:public Animal{public:void fun(){cout << "dog fun()"<<endl;}Dog(string name = "",int age = 0):Animal(name,age){}};int main(){//Animal a;Dog dog("haha",6);//子类也会有纯虚函数,子类也是抽象类,所以子类必须实现抽象类dog.show();}值得注意的是,在继承一个抽象类中,如果不在派生类中重写这个方法的话,那么派生类依然会有父类的纯虚函数,此时派生类还是一个抽象类。所以要使得派生类可以创建对象,则要重写父类的纯虚函数。
纯抽象类:除了构造函数和析构函数之外的其他函数都是纯虚函数,这样的类就是纯抽象类。有意思的是,学过java的人其实应该比较清楚,java中不支持多继承,但是java却通过接口的方式实现了多继承所要达到的目的。java中的接口其实本质上就是c++中的纯抽象类。
0 0
- C#中的抽象
- 【C#】C#中的继承 (继承、抽象类和抽象方法、接口)
- java中的抽象类
- Java中的抽象类
- Java中的抽象类
- Java中的抽象类
- C#中的抽象类
- java中的抽象类
- java中的抽象类
- JAVA中的抽象类
- java中的抽象类
- java中的抽象类
- java中的抽象类
- java中的抽象类
- java中的抽象类
- Java中的抽象类
- java中的抽象类
- JAVA中的抽象类
- JavaScript-用键盘控制动画
- Android开源项目第三篇——优秀项目篇
- k-means聚类算法
- 欢迎使用CSDN-markdown编辑器
- Largest Rectangle in Histogram 直方图中最大的矩形
- c++中的抽象类
- 开启FTP客户端(编程)
- [jvm解析系列][八]方法表集合,Code属性和Exceptions属性,你的字节码存在哪里了?
- 柴俊理金:美指企稳转危为安,黄金反弹原油走软
- http not supported or disabled in libcurl 和 未将对象引用到实例的解决办法
- Bmob 推送功能Demo
- UltraISO 为ThinkPad品牌的X100e系列通过U盘来安装
- Swift中的willSet与didSet
- jquery自己写表单验证