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

C++ 引用的初始化与对象的初始化,c++,dynamic-cast,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(); derd; 基数&b=d; der x=动态(b);-->A. der&y=动态_投射(b);-->B x、 方法(); y、

我知道动态强制转换对指针和引用有效。 以下两项都是向下浇铸的工作

der d;
base& b = d;
der x = dynamic_cast<der&>(b);  -->A
der& y = dynamic_cast<der&>(b); -->B
x.method();
y.method();
derd;
基数&b=d;
der x=动态(b);-->A.
der&y=动态_投射(b);-->B
x、 方法();
y、 方法();
我想知道A和B的区别是什么

der x = dynamic_cast<der&>(b);
der& y = dynamic_cast<der&>(b);
只是初始化一个引用

x.method();
对单独构造的对象调用
method()

y.method();

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

从派生转换为基不需要任何强制转换。让我改变一下-我的重点是在引用部分。A和B之间的差异根本不涉及
动态强制转换。你是在问值类型和引用之间有什么区别吗?还是错了。如果
b
是实际对象,而不是引用,则强制转换将始终抛出。此外,您还混淆了
der
base
B
A
,使其非常混乱。您的示例与
dynamic\u cast
无关。相应地更改了标题。