有关虚函数的注意事项浅谈
来源:互联网 发布:ssd优化 编辑:程序博客网 时间:2024/06/11 20:31
1.构造函数
构造函数不能是虚函数,这是不符合语法规则的,编译时出错。创建派生类的对象时,将调用派生类的构造函数,而不是基类的构造函数,然后再调用基类的构造函数,这种顺序不同于继承机制,另外派生类不继承基类的构造函数和析构函数。
2.析构函数
析构函数应该声明成虚函数
#include<iostream>class Base{ public: Base() {std::cout<<"This is Base ctr"<<std::endl;} virtual ~Base() {std::cout<<"This is Base dtr"<<std::endl;}};class inherit : public Base{ public: inherit() {std::cout<<"This is inherit ctr"<<std::endl;} ~inherit() {std::cout<<"This is inherit dtr"<<std::endl;}};int main(int argc, char const* argv[]){ Base* pb = new inherit(); delete pb; return 0;}
这样可以确保析构的顺序,即当释放基类指向的内存时,先调用子类的析构函数,再调用基类的析构函数(如图)
友好的编码人员,无论基类与否,析构函数都定义为虚析构函数,这是一个效率问题—————————-《C++ primer plus》
1 0
- 有关虚函数的注意事项浅谈
- 有关printf函数的几点注意事项
- 有关插入语句的注意事项
- 有关auto_ptr的一些注意事项
- z-index的有关注意事项
- 有关STL使用上的一些注意事项。关于某些函数的参数问题。
- Notes中有关C++API的注意事项
- 访问Excel应用程序的有关注意事项
- struts中有关DynaActionForm的注意事项
- [转]有关手机应用程序开发的注意事项
- 有关于宏定义的注意事项
- android有关SharedPreferences的使用方法及注意事项
- Java中有关Null的注意事项
- 有关于虚函数的问题
- 有关爱情的函数;)
- 有关Mat的函数
- POWER_SAVING有关的函数
- 数学有关的函数
- AngularJS入门 、AngularJS控制器 、AngularJS常见的内置指令
- angular--$watch监视用法
- org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: u near line 1, column 55 [fro
- angular入门
- Redis系列(三)——主从介绍和配置
- 有关虚函数的注意事项浅谈
- Quartz定时调度
- pthread编程基础
- 剑指offer-16.合并两个排序的链表
- HDU-4370 0 or 1(SPFA)
- 编写脚本creat_swap.sh
- 【taotao】HttpClient
- UVA1354 (枚举二叉树)
- SourceTree和Github的一些知识