初始化引用与对象的初始化

时间:2014-11-23 22:26:42

标签: c++ dynamic-cast

我知道动态强制转换适用于指针和引用。 以下两项工作都向下推进

der d;
base& b = d;
der x = dynamic_cast<der&>(b);  -->A
der& y = dynamic_cast<der&>(b); -->B
x.method();
y.method();

我想知道A和B之间的区别

1 个答案:

答案 0 :(得分:2)

该行

der x = dynamic_cast<der&>(b);

构造一个der类型的对象,并使用dynamic_cast<der&>(b)

对其进行初始化

该行

der& y = dynamic_cast<der&>(b);

只是初始化参考。

x.method();

在单独构造的对象上调用method()

y.method();

在对象method()引用上调用y,即d