【发布时间】:2014-10-25 22:18:45
【问题描述】:
5.2.7/7 说了类似这样的话:
如果
T是“指向cv void的指针”,则结果是指向x指向的最派生类的指针。
这个synatx有什么好的应用?什么时候应该使用dynamic_cast<void*>?
【问题讨论】:
-
以下是 MSalters 描述的示例:ideone.com/84U5ax
-
我认为分配器可以利用这一点(内存管理)。例如。如果你需要一块内存的起始地址,但你只有一个指向基类的指针。
-
@dyp:如果你已经有一个对象,它的内存必须已经分配,所以分配器不能再次分配它。对于解除分配,您需要的不仅仅是基地址,还需要派生最多的类型,以便可以运行所有析构函数。
-
@MSalters 如果你的析构函数是虚拟的,你就不需要最派生的类型,如果它不是虚拟的,那是你自己的错,无论如何你都搞砸了。
标签: c++ c++11 casting void-pointers dynamic-cast