c++ 虚函数和纯虚函数
2015-08-01 00:36
295 查看
C++基类中有三种函数声明,1 纯虚函数 pure virtual 2 虚函数 impure virtual 3. non-virtual 函数
声明纯虚函数: 为了让derived classes 只继承函数接口
声明虚函数: 让derived classes 继承该函数的接口和缺省实现。
声明non-virtual函数: 为了令derived classes 继承函数接口及一份强制性实现。 这个可以理解为,non-virtual函数的声明意味了不打算在派生类中有不同的行为,及不管派生类如何特异化,该函数行为保持不变。
纯虚函数声明: virtual void fun1 () = 0;
虚函数声明: virtual void fun1();
non-virtual声明: void fun1();
众所周知,包含纯虚函数的类为抽象类,不可以实例化。声明纯虚函数的作用是强制子类为该纯虚函数进行实现。及纯虚函数是接口继承,而虚函数是实现继承。对于虚函数,子类可以有自己的实现,也可以使用基类的实现。
在类设计时,根据具体的方法是否需要子类重新实现或者必须重新实现来声明不同类型的方法。
声明纯虚函数: 为了让derived classes 只继承函数接口
声明虚函数: 让derived classes 继承该函数的接口和缺省实现。
声明non-virtual函数: 为了令derived classes 继承函数接口及一份强制性实现。 这个可以理解为,non-virtual函数的声明意味了不打算在派生类中有不同的行为,及不管派生类如何特异化,该函数行为保持不变。
纯虚函数声明: virtual void fun1 () = 0;
虚函数声明: virtual void fun1();
non-virtual声明: void fun1();
众所周知,包含纯虚函数的类为抽象类,不可以实例化。声明纯虚函数的作用是强制子类为该纯虚函数进行实现。及纯虚函数是接口继承,而虚函数是实现继承。对于虚函数,子类可以有自己的实现,也可以使用基类的实现。
在类设计时,根据具体的方法是否需要子类重新实现或者必须重新实现来声明不同类型的方法。
相关文章推荐
- C语言的图形函数笔记
- 【黑马程序员】C语言之函数
- 【leetcode c++】113 Path Sum II
- JDK结构以及java基本字符类型与c/c++区别
- 函数探幽
- C++修改文件名
- C++标准库:bitset 用法整理
- poj 2315 最小费用最大流入门题
- 关于C++虚函数和纯虚函数
- 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