• Effective C++ .07 virtual析构函数的提供


    主要讲了,

    1. virtual析构函数的作用与调用顺序

    2. 使用时机,并不是使用了继承就要把基类的析构函数变为虚函数(virtual),只有当用于多态目的时才进行一个virtual析构函数的定义。

    3. 不要继承那些没有将析构函数定义为virtual的类来实现多态行为 

    对于1:

    有些类继承可能只是一个组合的作用,这样加入virtual析构函数就会使得类实例的空间占用增加(一个vptr)

    对于2:

    如果继承确实是为了实现多态效果,那么最好定义一个virtual析构函数(自己认为,当不涉及到资源释放,其实也没必要进行定义,但是防范未然,因为已经使用了多态,那么vptr的存在就必不可少了,加入一个virtual析构函数并不会再引起类实例数据存放上的巨大变动)

    对于3:

    特别注意STL中的许多容器都要去继承他们来实现多态,可能导致自己扩展的部分资源未被释放(因为仅仅会调用基类的析构函数,而它恰恰不是virtual函数)

  • 相关阅读:
    擅用伪元素::before(:before)和::after(:after)
    CSS清除浮动float
    javascript:void(0) 含义
    js运算符的优先级
    js的Array的sort()排序方法
    js将字符串转化为数字
    mvc:一
    六:使用注解整合开发
    五、整合struts2和mybatis和spring
    08_动态sql
  • 原文地址:https://www.cnblogs.com/lailailai/p/4176712.html
Copyright © 2020-2023  润新知