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