【发布时间】:2022-01-01 12:33:56
【问题描述】:
我对大多数 OOP 理论都有深刻的理解,但让我很困惑的一件事是虚拟析构函数。
我认为析构函数总是被调用,不管是什么,对于链中的每个对象。
您打算什么时候将它们虚拟化?为什么?
【问题讨论】:
-
每个析构函数 down 无论如何都会被调用。
virtual确保它从顶部而不是中间开始。 -
我也对@MooingDuck 的回答感到困惑。如果您使用子类(下)和超类(上)的概念,它不应该是up而不是down吗?
-
@Nibor:是的,如果你使用这个概念。与我交谈的大约一半的人将超类视为“高于”,一半将超类视为“低于”,因此两者都是相互冲突的标准,这让一切都变得混乱。我认为“高于”的超类更为常见,但这不是我被教导的方式:(
标签: c++ polymorphism shared-ptr virtual-destructor