我遇到了「重新定義」析構函數的問題。事情是我已經給了一個結構的定義,我不能修改。它是一棵樹的「葉子」。目標是僅釋放一部分樹,同時返回一個指向剩餘子樹的指針。我的想法是使用引用計數。 這是給定的代碼:是否有可能重新定義析構函數?
struct TLeaf {
TLeaf* m_L;
TLeaf* m_R;
~TLeaf(void) {
delete m_L;
delete m_R;
}
}
有至少辦法避免調用這個析構函數?其實任何想法都是可以接受的。 :D
非常感謝Stack Overflow的好人。 :)
你是說,你不能改變這個代碼?你需要在子類中定義新的行爲? – payo
覆蓋刪除操作符(不要這樣做) –
如果它是__leaf__,它不應該是樹中的最後一個節點嗎?如果是這樣 - 它不應該有子樹。 –