问题描述
有人可以向我解释这个问题。
dynamic_cast< SomeObject *>(&(* similarObject)
执行取消引用指针的地址的意义是什么?
这可能是 similarObject 已经重载运算符*
,因此它返回的东西的地址,你传递到 dynamic_cast
。
&(* x)
和 x
可能不会总是相同的东西。例如,想到迭代器:
std :: map< int,int> :: iterator it = v.begin ;
然后 it
和是两个不同的东西:
-
它
是std :: map
-
&(* it)
是std :: pair< int,int> *
/ ul>
它们不是 。类似的事情也可能发生在你的代码片段。
Can someone please explain this to me
dynamic_cast<SomeObject *>( &(*similarObject) );
What is the point of doing the address of a dereferenced pointer? Wouldn’t the pointer itself just be the address of it?
It may be that the type of similarObject
has overloaded operator*
and so it returns something whose address you're passing to dynamic_cast
.
&(*x)
and x
may not be always the same thing. For example, think of iterator:
std::map<int, int>::iterator it = v.begin();
Then it
and &(*it)
are two different thing:
- The type of
it
isstd::map<int, int>::iterator
- The type of
&(*it)
isstd::pair<int,int>*
They're not at all same. Similar thing may happen with your code-snippet as well.
这篇关于&(* similarObject)和similarObject之间的区别?他们不一样吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!