关于C++虚函数和纯虚函数
2015-07-31 23:51
501 查看
直接上代码
第一种情况:
输出
第二种情况:
第三种情况:
好吧,从代码和输出结果已经看出不同了,自己体会吧。
第一种情况:
[code]#include <iostream> using namespace std; class CPureVirtual { public: virtual void func() = 0; }; class CVirtual : public CPureVirtual { public: void func() { cout<<"CVirtual::func()"<<endl; } }; class CInstance : public CVirtual { public: void func() { cout<<"CInstance::func()"<<endl; } }; int main() { CInstance in; CVirtual *pVirt = ∈ pVirt->func(); return 0; }
输出
[code]输出: CInstance::func()
第二种情况:
[code]#include <iostream> using namespace std; class CPureVirtual { public: virtual void func() = 0; }; class CVirtual/* : public CPureVirtual*/ { public: void func() { cout<<"CVirtual::func()"<<endl; } }; class CInstance : public CVirtual { public: void func() { cout<<"CInstance::func()"<<endl; } }; int main() { CInstance in; CVirtual *pVirt = ∈ pVirt->func(); return 0; }
[code]输出: CVirtual::func()
第三种情况:
[code]#include <iostream> using namespace std; class CPureVirtual { public: virtual void func() = 0; }; class CVirtual/* : public CPureVirtual*/ { public: virtual void func() { cout<<"CVirtual::func()"<<endl; } }; class CInstance : public CVirtual { public: void func() { cout<<"CInstance::func()"<<endl; } }; int main() { CInstance in; CVirtual *pVirt = ∈ pVirt->func(); return 0; }
[code]输出: CInstance::func()
好吧,从代码和输出结果已经看出不同了,自己体会吧。
相关文章推荐
- More Effective C++:Item 27
- 【leetcode c++】 112 Path Sum
- 【leetcode c++】111 Minimum Depth of Binary Tree
- [V1.0]小木虫路径搜索问题C语言处理方案
- Silver Cow Party
- VC++内存泄漏定位(依赖MFC)
- 数码管问题(c++实现)
- iOS开发轻松搞定C语言面试—— 算法
- 单片机延时C语言程序
- 指针使用注意事项
- 我的C语言入门到精通之路 day04
- C++读dat文件
- C++ 智能指针详解
- C++ string 类的 find 方法实例详解
- <<深度探索c++对象模型>>第一章读书笔记
- C++读取注册表
- 黑马程序员-C语言printf和scanf函数中格式控制符使用小结
- 黑马程序员-C语言数组的使用注意事项
- 黑马程序员-C语言指针用法
- 黑马程序员-C语言const关键字的使用小结