如何调用子类的析构函数 [英] how to call child class destructor

查看:180
本文介绍了如何调用子类的析构函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,
我只有一个基类

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆