是不是可以不调用父析构函数?

Nef*_*pus 1 c++

我得到了一个我无法修改的结构.是否可以提供我的析构函数并使用它而不是给定的析构函数?或者可能定义我的结构,然后在需要时进行类型转换?继承也是一种选择,但是没有设法跳过父析构函数的调用.

//Given struct
struct TA {
  ~TA() {
    delete m_L;
    delete m_R;
  }
  TA* m_L;
  TA* m_R;
};

//What i need
struct TB {
  ~TB() {
    if (m_L) m_L->destroy();
    if (m_R) m_R->destroy();
  }
  void destroy() {
    if (!--nRefernece) delete this;
  }
  int nRefernece;
  TB* m_L;
  TB* m_R;
};
Run Code Online (Sandbox Code Playgroud)

Chr*_*ckl 5

不.如果您不想调用父析构函数,请不要使用继承.