Difference between &(*similarObject) and similarObject? Are they not same?

后端 未结 3 1527
谎友^
谎友^ 2020-12-06 04:09

Can someone please explain this to me

dynamic_cast( &(*similarObject) );

What is the point of doing the address of

3条回答
  •  甜味超标
    2020-12-06 04:57

    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::iterator it = v.begin();
    

    Then it and &(*it) are two different thing:

    • The type of it is std::map::iterator
    • The type of &(*it) is std::pair*

    They're not at all same. Similar thing may happen with your code-snippet as well.

提交回复
热议问题