动态转换默认类型

时间:2014-05-05 20:11:04

标签: c++ dynamic-cast

我想知道为什么以下不起作用

 float f = 12;
 int& g = dynamic_cast<int&>(f);

我收到错误

  

无法动态播放&#39; f&#39; (类型&#39;浮动&#39;)键入&#39; int&amp;&#39; (目标是   不是指针或对类的引用)

 int& g = dynamic_cast<int&>(f);

我知道动态转换处理指针和引用所以我的问题是引用只适用于类类型而不是默认类型吗?

1 个答案:

答案 0 :(得分:3)

根据C ++标准(#5.2.7.1):

  

1表达式dynamic_cast(v)的结果是结果   将表达式v转换为类型T.T应为指针或   引用完整的类类型,或“指向cv void的指针。”