首页 > 后端开发 > C++ > 为什么非常量左值引用不能绑定到 C 中的不同类型?

为什么非常量左值引用不能绑定到 C 中的不同类型?

Susan Sarandon
发布: 2024-12-03 00:14:11
原创
1019 人浏览过

Why Can't Non-Const Lvalue References Bind to Dissimilar Types in C  ?

将非常量左值引用绑定到不同类型

在 C 中,非常量左值引用必须绑定到相同类型的左值类型。当尝试将临时对象绑定到非常量引用时,这可能会令人困惑,如以下示例所示:

int a;
const double &m = a; // This is allowed
double &m = a; // This produces an error
登录后复制

错误“对类型‘double’的非常量左值引用无法绑定”到不相关类型“int”的值,”表示非常量类型的引用不能绑定到不同类型的对象。

此限制的原因是临时对象不能绑定到非常量引用。当 a 转换为 double 时,会创建一个临时对象。结果,出现以下代码行:

double &m = a;
登录后复制

尝试将非常量引用绑定到临时对象,这是不允许的。

但是,有一个例外Visual Studio 中的此规则,其中编译器扩展允许将非常量引用绑定到临时对象。然而,这种行为并不标准,并且会导致 GCC 等其他编译器出现错误。

以上是为什么非常量左值引用不能绑定到 C 中的不同类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板