我可以这样做吗?
static_cast<A*>(getSomePtr());
Run Code Online (Sandbox Code Playgroud)
哪里getSomePtr()会回来nullptr.这个可以吗?
我怀疑你感到困惑的区别一个空指针和nullptr他们是不一样的.
该函数返回nullptr:
std::nullptr_t getNullPtr() { return nullptr; }
Run Code Online (Sandbox Code Playgroud)
但是返回这是一件相当无用的事情,很少有理由返回该类型的对象.
此函数返回一个空指针:
A* getAPtr() { return nullptr; }
Run Code Online (Sandbox Code Playgroud)
返回值初始化,nullptr但它实际上是类型的空指针A*,而不是nullptr它自身.
对于第一个函数,是的,您可以将返回的转换std::nullptr_t为另一个指针类型(您甚至不需要转换来进行转换,它会隐式发生)但这可能不是您想要做的事情.
对于第二个函数,您不需要强制转换它,因为它已经返回了正确的类型.
| 归档时间: |
|
| 查看次数: |
6644 次 |
| 最近记录: |