effective c++ 7: Declare destructors virtual in polymorphic base classes
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了effective c++ 7: Declare destructors virtual in polymorphic base classes,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含653字,纯文字阅读大概需要1分钟。
内容图文
![effective c++ 7: Declare destructors virtual in polymorphic base classes](/upload/InfoBanner/zyjiaocheng/1219/cf76d28091f2494594b2926e0cc51d5d.jpg)
比如我们有个factory函数,这个函数返回一个base class的指针,指向derived class对象。在使用完毕后要正确的删除这个factory返回的每个对象。但是假如derived class对象通过一个base的指针删除,但是这个base class的析构函数是non-virtual的话,这个对象的derived部分一般是无法被销毁的。
对于上面这种带有多态性质的base class应该声明一个virtual析构函数。
任何class只要带有virtual函数都应该有个virtual析构函数。
但是如果一个class不含virtual函数的话就不要随便乱写virtual析构函数了,那样会增加对象的体积(为了实现virtual函数需要指向vtbl的vptr)并且破坏移植性(因为其他像c一样的语言没有vptr)。
任何不带virtual析构函数的class都不适合做base class,所以不要随便继承一个标准容器,或者其他带有non-virtual析构函数的类。
原文:http://www.cnblogs.com/parapax/p/3649499.html
内容总结
以上是互联网集市为您收集整理的effective c++ 7: Declare destructors virtual in polymorphic base classes全部内容,希望文章能够帮你解决effective c++ 7: Declare destructors virtual in polymorphic base classes所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。