poc*_*oco 29 c++ casting dynamic
有人可以向我解释一下
dynamic_cast<SomeObject *>( &(*similarObject) );
Run Code Online (Sandbox Code Playgroud)
做取消引用指针的地址有什么意义?指针本身不是它的地址吗?
Naw*_*waz 32
可能是类型similarObject
已经过载operator*
,因此它会返回您传递给它的地址dynamic_cast
.
&(*x)
并且x
可能并不总是相同的事情.例如,想一下迭代器:
std::map<int, int>::iterator it = v.begin();
Run Code Online (Sandbox Code Playgroud)
然后,it
和&(*it)
是两个不同的东西:
it
是std::map<int, int>::iterator
&(*it)
是std::pair<int,int>*
他们并非完全相同.您的代码片段也可能发生类似的事情.
Dan*_*Dan 17
如果similarObject是智能指针,则当*已经过载时,此技术有时用于获取原始指针的引用.