C++抽象类
来源:互联网 发布:淘宝红包套现店铺 编辑:程序博客网 时间:2024/05/20 23:39
带有纯虚函数的类称为抽象类
class 类名
{
virtual 类型 参数名(参数表)=0; //纯虚函数
...
}
作用
· 抽象类为抽象和设计的目的而建立,保证派生类具有要求的行为。
· 对于暂时无法实现的函数,可以声明为纯虚函数,留给派生类去实现。
注意
· 不能声明抽象类的对象。
· 抽象类只能作为基类使用。
· 派生类重新定义该虚函数时候,默认virtual。
· 如果派生类中虚函数和基类函数不一致,即便是参数类型不一致将不能实现虚函数的作用。
例:
#include<iostream.h>class Base{public:virtual void fn(int x){cout<<"int "<<x<<endl;}};class Subclass:public Base{public:virtual void fn(int x)//假如virtual void fn(floatx),虚函数将不成立,即便前面有virtual,将不识别,将会起不到效果。{cout<<"float "<<x<<endl;}};void test(Base *b){int i=1;b->fn(i);int f=2;b->fn(f);}void main(){Base *te;Base bc;Subclass sc;te=&bc;test(te);te=≻test(te);}
限制
· 只有类成员函数才能说明为虚函数。
· 内联函数不能为虚函数,因为内联函数在编译时决定其位置。
· 构造函数不能为虚函数,因为构造时对象还是一片未定型空间。
· 析构函数可以为虚函数,通常声明为虚函数。
0 0
- 抽象类(C++)
- [c++]抽象类
- c+-----------------------------抽象类
- C#_抽象类和抽象方法
- C#:抽象类的学习
- 数据抽象----类(c++)
- C#----接口与抽象类
- C#---抽象类与接口
- C#:超基础 抽象类
- 【C#】抽象类和接口
- 【C++】接口(抽象类)
- 转:C++ C#抽象类
- C#:抽象
- C#==>抽象类和抽象函数
- C#--抽象类、抽象方法、多态机制
- C#:抽象类PK密封类
- 抽象类和接口(C#)的区别
- c#接口与抽象类的区别
- linux下mysql数据库编程练习
- JSTL标签 参考手册
- Vundle的安装与使用
- MapReduce 编程模型概述
- sencha touch 2 chrome调试
- C++抽象类
- leetcode: Integer to Roman
- 什么是load
- Ubuntu下使用GoAgent的一些细节
- [Java]Guava
- myeclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题
- 【工具类】JAVA 以行为单位读取文件并比对
- Java对象排序
- 笑话一则