当对象(可能)从基类指针中析构时,需要虚拟析构函数。
考虑一个在嵌入式系统中常见的没有动态内存的程序。在这里,使用new
或delete
触发链接器错误,因为未实现所需的底层分配器。因此,开发人员只使用静态分配的对象(在 bss/data 部分)或自动分配的对象(通常在堆栈上)。
在这样的系统中,是否存在真正需要虚拟析构函数的情况?(假设没有人感到无聊并在某个指针上手动调用析构函数。)
在我看来,静态和自动分配总是调用正确的析构函数。我想念什么吗?是否有任何角落案例?与 unique_ptr 和自定义删除器一起使用的静态对象池怎么样?