CodeSky 代码之空

随手记录自己的学习过程

C++ auto decltype 初始化变量类型

2014-09-26 16:43分类: Other评论: 0

C++中的两种有趣的类型,让编译器自己去分析我们所需要的数据类型,这两者有有些区别: auto 定义的变量必须具有初值

1// 由val1和val2相加的结果可以推断出item的类型
2auto item = val1 + val2;  // 初始化为val1和val2相加的结果
3

但是,注意以下两条:

1auto i = 0, *p = &i;   // 正确:i是整数,p是整型指针
2auto sz = 0, pi = 3.14;  // 错误,sz和pi的类型不一致
3

具体的,Primer61页之后有,稍微看下就好了,关于类型都是个麻烦的东西。

decltype有些类似,但只得到类型,不实际计算表达式的值

1decltype(f()) sum = x; // sum的类型就是函数f的返回类型
2

decltype((variable))结果永远是引用,而decltype(variable)只有当variable本身是一个引用才是引用,如果是引用,必须要初始化,否则则不必。

评论 (0)