c++ primer学习总结day2

C++11新特性:

auto:

auto让编译器通过初始值来推算变量的类型。

auto定义的变量必须有初始值。

auto声明的所有变量的初始基本数据类型都必须一样。

 

decltype:

decltype的作用是选择返回操作数的数据类型。

编译器分析表达式并得到它的类型,却不计算表达式的值。

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

如果decltype使用的表达式不是一个变量,则decltype返回表达式结果对应的类型。

int i = 42, *p = &i, &r = i;
decltype(r+0) b;           //正确:加法的结果是int,b是一个未初始化的int
decltype(*p) c;            //错误:c是int& ,必须初始化

decltype的表达式如果是加上了括号的变量,结果将是引用。

 

范围for语句(range for)

语法形式:    for(变量 :对象)

          statement

//输出string对象的字符
string str("some string");
for ( auto c : str)
    cout << c << endl;
//
//修改字符串中的字符
string s("Hello World!!!");
for ( auto &c : s)        //c是引用
    c = toupper(c); 

 

2018年7月27日

猜你喜欢

转载自www.cnblogs.com/catttt/p/cppday_2.html
今日推荐