C++纯虚函数的实现
来源:互联网 发布:.net和php哪个好一些 编辑:程序博客网 时间:2024/06/13 13:52
虚函数和纯虚函数是C++的重要特征之一,对于虚函数,在类的vtable里面有一个指针指向其实现,但是纯虚函数又是如何的情况呢?如下面的例子:
#include <stdio.h>#include <iostream>using namespace std;class base{ public: virtual void show() { cout<<"\n Base class show:"; display(); } virtual void display() = 0;}; class derive:public base{ public: void display() { cout<<"\n Derive class display:"; } void show() { cout<<"\n Derive class show:"; base::show(); }};int main(int argc, char *argv[]){derive *p = new derive;p->show();return 0;}
对于虚函数的show的调用,非常容易理解,但是在derive当中调用base::show(),而在这个函数当中有调用了纯虚函数,其中基类的纯虚函数又是在基类里面不实现的。问题就在于,在基类里面调用纯虚函数会有什么样的结果,是不是一个正确的做法。实验证明上面的程序是没有问题的,基类里面是可以调用它的纯虚函数,上面的程序输出是:
Derive class show:
Base class show:
Derive class display:
所以,对于这个例子的解释,我个人参考相关的资料之后认为是这样的:对于纯虚函数vtable的指针指向其具体实现,所以在基类调用纯虚函数就等于调用了其在子类中的实现。
- C方式实现C++纯虚函数
- 【C++】纯虚函数的简单应用。
- 纯虚函数的默认实现
- C++纯虚函数的实现
- 纯虚函数的默认实现
- 纯虚函数的默认实现
- 纯虚函数的默认实现
- 纯虚函数的默认实现
- 带默认实现的纯虚函数
- 【C/C++】纯虚函数
- 纯C环境下实现标准函数的覆盖
- [c++]为什么可以在基类中实现纯虚函数
- 纯C的Stack实现
- 关于纯C中的函数实现
- C++纯虚函数实现
- C++:抽象基类和纯虚函数的理解
- C++:抽象基类和纯虚函数的理解
- 纯C语言简单模拟C++的虚函数表
- Linux挂载Windows分区应硬盘
- 自己写的双电池IC driver(linux 框架下driver部分)
- 线程的挂起和访问
- Python Challenge(有趣的Python问题,没事可做做)
- zencart v150 主要函数解析整理
- C++纯虚函数的实现
- sap CRM 7.0中删除BP
- JCreator 连接数据库
- linux 信号
- MySQL DELETE SQL使用经验
- android瀑布流学习
- Oracle SQL Developer - Unable to create an instance of the Java Virtual Machine
- 检查某个文件或目录是否存在的函数
- Eclipse3.4+CDT5.0安装配置