如何调用子类的析构函数 [英] how to call child class destructor
本文介绍了如何调用子类的析构函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好,
我只有一个基类
hello,
I have one base class
class Base{
public:
Base();
~Base();
}
还有一个孩子班
And one child class
class Child : public Base
{
public:
Base();
~Base();
}
int main()
{
Child *c = new Child();
Base *b = c;
delete b;
return 0;
}
在此代码中,基类的析构函数被调用.我想称呼Child类为Destructor.
In this code , Base class destructor is called. I want to call Child class Destructor. How is it possible?
推荐答案
使用
virtual
关键字定义析构函数:
Define the destructor with the
virtual
keyword:
class Base{
public:
Base();
virtual ~Base();
}
另一个问题:Child
类的构造函数和析构函数应命名为Child()
和virtual ~Child()
(而不是Base()
和~Base()
).
Another issue: The constructor and destructor of the Child
class, should be named Child()
and virtual ~Child()
(instead of Base()
and ~Base()
).
这篇关于如何调用子类的析构函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文