【发布时间】:2013-10-12 11:10:24
【问题描述】:
假设有一个基类 B 和派生类 D1、D2、D3。
B* b;
D1 d1;
D2 d2;
D2 *pd2 = &d2;
D3 d3;
//more code placing valid data on variables
可以在代码中的某处说b = &d1 或b = pd2。
现在是否可以在没有动态转换的情况下将 b 与指向 d1、d2 和 d3 的指针进行比较以获得指针的相等性?也就是说,我可以这样做吗:
if (b == &d1)
{
//do something
}
?
【问题讨论】:
-
b = pd2是不可能的,可能你的意思是b = &pd2 -
@GrijeshChauhan pd2 是一个指针,以防你错过它。
-
@Akilan 你应该叫它
pb而不是b.. -
@Adam 是的;在您发表评论之前没有意识到。现在无法更改,因为它会混淆答案和 cmets。
标签: c++ pointers polymorphism