LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 491|回复: 0

类型演绎:auto 和 decltype

[复制链接]
发表于 2024-2-19 22:51:27 | 显示全部楼层 |阅读模式
初始化新变量时,编译器可以通过初始值设定项自动确定变量的类型。为此,用作变量的类型说明符就足够了:auto


int foo = 0;
auto bar = foo;  // the same as: int bar = foo;

这里,被声明为具有类型;因此,type of 是用于初始化它的值的类型:在本例中,它使用 的类型 ,即 。

未初始化的变量也可以使用说明符的类型演绎:barautobarfoointdecltype


int foo = 0;
decltype(foo) bar;  // the same as: int bar;

此处,声明为具有与 相同的类型。

并且是最近添加到语言中的强大功能。但是,它们引入的类型推导功能旨在用于无法通过其他方式获取类型或使用类型可以提高代码可读性时使用。上面的两个例子可能都不是这些用例。事实上,它们可能降低了可读性,因为在阅读代码时,必须搜索 的类型才能真正知道 的类型。barfooautodecltypefoobar

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表