【发布时间】:2015-11-11 14:26:58
【问题描述】:
我可以这样做吗?
static_cast<A*>(getSomePtr());
getSomePtr() 将返回 nullptr。这样可以吗?
【问题讨论】:
-
这就是
nullptr的用途。 -
getSomePtr()的返回类型是什么?它实际上是std::nullptr_t还是某些实际指针类型的空指针值?从函数返回std::nullptr_t很奇怪,如果它不是std::nullptr_t,那么你不需要转换它,因为它不是nullptr。 -
重要的是类型。指针的值不影响强制转换是否有效。
-
这完全取决于“其他指针类型”的含义。还有,你的意思是空指针还是
nullptr?它们是不同的东西。将返回类型显式写入问题会很有用。 -
你不需要一个函数来返回
nullptr:nullptr的值的类型只承认一个值,也就是那个值,所以你不妨把函数替换为该值的常数。