在阅读TCPL第四版的时候看到,c++11支持类数据成员的初始化(In-Class Initializer),很有意思的功能. 测试代码如下: class Date { int year{2015}; int month{10}; int day{1}; public: Date(){} }; int main(int argc, char ** argv) { Date d; return 0; } Date类的构造函数,通过初始化式,等价于 Data::Date(): year(2015),…
C++11带来的优雅语法 自动类型推导 auto auto的自动类型推导,用于从初始化表达式中推断出变量的数据类型.通过auto的自动类型推导,可以简化我们的编程工作; auto是在编译时对变量进行了类型推导,所以不会对程序的运行效率造成不良影响; 另外,似乎auto也并不会影响编译速度,因为编译时本来也要右侧推导然后判断与左侧是否匹配. auto a; // 错误,auto是通过初始化表达式进⾏类型推导,如果没有初始化表达式,就无法确定a 的类型 auto i = 1; auto d = 1.…
1.新增算术类型 longlong,最小不比long小,一般为64位. 2.列表初始化 int units_sold = {0};或者 int units_sold{0};非11标准下的C++中,只有特定的情况下才能使用该形式. 比如数组的初始化,类构造函数的初始化,结构体的填充.相比传统的赋值初始化,如果右侧的数值类型相对于左侧类型更大的话,侧对于这种窄化现象,编译器会 报错.如:int k = {3.14};一个double是8个字节,int一般是4个字节,这时编译器就会…