C++虚函数和纯虚函数和抽象类
来源:互联网 发布:mac显示.git文件夹 编辑:程序博客网 时间:2024/05/14 23:26
1 虚函数
虚函数是类的一种特殊成员函数,主要是为实现C++的多态特性引入。
虚函数之所以“虚”是因为调用的虚函数不是在静态编译(静态编联)时确定,而是在运行时通过动态编联确定的。
多态核心理念即是通过基类访问派生的子类,通常情况是借助基类指针来访问派生类对象。
Note:
1)析构函数通常声明为虚函数,这样在有继承场合,可以做到基于对象类型动态调用正确对象类型的析构函数,完成相应的对象析构。
2)友元函数不是成员函数,只有成员函数才能是虚函数,所以友元函数不能是虚函数;但是友元函数可以通过调用成员虚函数达到虚拟化效果。
3)通过虚函数可以实现多态灵活,但是虚函数也有缺点如占用更多内存(虚表),运行效率低(需要查找虚表找到正确函数)。
4)通常普通函数(非成员函数)和类中不能继承(只属于本类)的函数(构造函数/static成员函数/inline成员函数/友元函数)不能声明为虚函数;不能声明为虚函数的函数共同点基本都是静态编联,而虚函数要靠动态编联机制才能起作用。
2 纯虚函数
纯虚函数是一种特殊的虚函数,通常定义在基类中。纯虚函数在基类中定义方法是在函数声明末尾加“=0”,如 virtual func(int, int) = 0。
纯虚函数的“纯”体现为基类不需要实现它,其主要作用是为派生类定义函数接口框架,由派生类完成纯虚函数的实现。
3 抽象类
如果一个类包含有纯虚函数,则该类称为抽象类。
抽象类一般只能是基类,其声明的纯虚函数由派生类实现。如果派生类没有重写(覆盖)抽象类的纯虚函数则派生类也是抽象类。
对象不能基于抽象类创建,必须基于派生出来的具体类创建对象。
- 【c++】纯虚函数和抽象类
- [C++]纯虚函数和抽象类
- C++:抽象基类和纯虚函数的理解
- C++:抽象基类和纯虚函数的理解
- C++:抽象基类和纯虚函数的理解
- 抽象类和纯虚函数
- 纯虚函数和抽象类
- 虚基类 、 纯虚函数和抽象类
- 纯虚函数和抽象类
- 纯虚函数和抽象类
- 纯虚函数和抽象类
- 抽象基类和纯虚函数
- 抽象类和纯虚函数
- 纯虚函数和抽象基类
- 纯虚函数和抽象类
- 纯虚函数和抽象类
- 纯虚函数和抽象类
- 抽象类和纯虚函数
- linux添加可远程登陆的用户、smb用户密码修改
- android之存储篇_SharedPreferences存储方式
- 备忘录 java 添加 jar 包 到 环境变量
- Tools - Editor, JAD. (JD-GUI notepad++ editplus)
- Leetcode 22 Generate Parentheses 搜索与DP的纠结
- C++虚函数和纯虚函数和抽象类
- 算法复杂度分析
- android开发之蓝牙配对连接的方法
- [代码篇].net实现拍照上传到本地和ftp服务器
- nginx + rails完整版配置文件
- Linux串口设置参数
- java synchronized详解
- 手机网页制作的认识(有关meta标签)
- Android SharedPreferences复杂存储