【发布时间】:2011-10-20 23:21:00
【问题描述】:
谁能给我解释一下
dynamic_cast<SomeObject *>( &(*similarObject) );
解引用指针的地址有什么意义?指针本身不就是它的地址吗?
【问题讨论】:
-
similarObject 是智能指针吗?当 * 被重载时,这种技术有时用于获取原始指针的引用。
-
解引用和地址操作符是否重载了?
-
@DanDan:把这个作为答案。
-
&* 也称为“不智能”运算符。括号是不必要的。
-
Is
similarObject是一个空指针,这会调用未定义的行为(至少在当前标准中)。此外,如果similarObject是共享指针或类似的东西,您就会引入潜在的泄漏(有dynamic_pointer_cast用于此用途)。someObject也可以是迭代器,而不是指针。