首页 > 其他 > 详细

重读STL源码剖析:析构

时间:2019-09-13 00:44:41      阅读:142      评论:0      收藏:0      [点我收藏+]

纯虚析构函数

理论上来说,将一个函数声明为纯虚函数后,这个类即变为抽象类。纯虚函数只提供接口,而不提供实现,但纯虚析构函数一定要提供定义。这是由C++特性决定的,编译器对派生类的析构函数会进行扩展,以静态调用的方式调用其每一个虚基类和上基类的析构函数,尽管是一个抽象类,但仍然要为这个纯虚析构提供实现,即使是awov::~awov() {} 这样没有任何操作的实现,因为如果不提供,将导致链接失败

虚函数与内联

内联函数是一种静态行为,由编译器在调用地点展开,这是在编译期进行的;而虚函数是一种动态行为,是在运行期通过虚函数表跳转来实现的,因此inline与virtual是矛盾的,之所以声明为virtual的内联函数能成功运行,这是因为编译器做了优化。inline是对编译器的一种建议,而编译器是否采纳则不一定。j

重读STL源码剖析:析构

原文:https://www.cnblogs.com/lxy-xf/p/11515570.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!