虚析构函数

来源:互联网 发布:总裁高级研修班知乎 编辑:程序博客网 时间:2024/06/05 05:37

传智扫地僧课程学习笔记。


在上节的基础上,

定义父类对象,传给它子类指针,实现了多态,

但是在析构的时候,只会调用父类的析构函数,

子类怎么办呢?

这个时候用virtual修饰父类析构函数,就会自动调用所有的析构函数,


如果你直接定义子类对象,然后释放子类资源,会自动调用父类的析构函数,

void howtodelete(A *base){delete base;  //这句话不会表现成多态 这种属性}/*void howtodelete(B *base){delete base;  //这句话不会表现成多态 这种属性}*/void main(){C *myC = new C; //new delete匹配//delete myC; //直接通过子类对象释放资源 不需要写virtual //howtodelete(myC);cout<<"hello..."<<endl;system("pause");return ;}


0 0
原创粉丝点击