深入理解C++11
文章平均质量分 83
liuxuejiang158
做点笔记,省的百度不到。。。
展开
-
C++11:兼容性
1 C++11保持与C99兼容 1.1 用于跨平台的相关宏 __STDC_HOSTED__完整包含C库为1否则为0 ; __STDC__是否和c标准一致 ; __STDC__VERSION__ 所支持的c标准版本 ; __STDC_ISO_10646 编译环境是否符合某个版本的C++标准 ; 通过以上宏程序员通过#ifdef/#endif预处理实现跨平台 1.2 __fun原创 2013-12-14 20:32:36 · 3417 阅读 · 0 评论 -
C++11:通用为本,专用为末
1 派生类可以自动获得基类的成员变量和接口(虚函数、纯虚函数),但是基类的非虚函数则无法被再被派生类使用了,所以派生类要使用基类的构造函数也需要显示声明,当基类的构造函数有多个版本的时候就需要在派生类中透传许多基类的构造函数。在C++11中派生类要使用基类的成员函数的话可以通过using声明完成。struct A { A(int i) {} A(double d, in原创 2013-12-21 11:08:44 · 2084 阅读 · 0 评论 -
C++11: 新手易学,老兵易用
1 C++11中针对vector >两个尖括号间的空格去除,也就是说C++11中可以写成:vector>,编译器这里不会将>>认为是右移符号。2 auto: C++中每个变量使用前必须定义从而被视为静态语言,而不像一些脚本语言变量可以这样用x=1称为动态语言。 静态语言和动态语言主要区别:静态语言类型检查发生在编译阶段,动态语言类型检查发生在运行阶段。C++11中实现了auto和de原创 2013-12-21 23:13:07 · 2189 阅读 · 2 评论 -
C++11: nullptr、默认函数的控制、lambda函数、对齐方式
1 nullptr nullptr是nullptr_t类型的实例化,替代了传统的NULL,C++11的指针空值常量。 nullptr_t是指针空值类型,nullptr仅仅是nullptr_t的一个实例,nullptr_t的使用规则:1) 所有定义为nullptr_t类型的数据都是等价的,行为也完全一致2) nullptr_t类型数据可以隐式转换成任意一个指针原创 2013-12-26 21:19:48 · 2461 阅读 · 1 评论 -
C++11:提高性能及操作硬件的能力
1 constexpr编译时期常量 constexpr用于函数:constexpr int get(){return 10};int array[get()];//get()返回一个编译期常量可以用于声明数组大小constexpr int a=get();//a是一个编译期常量int b=get();//此时get当一个普通函数使用,b不再是常量常量表达式函数必须满足:1原创 2013-12-24 21:56:29 · 3117 阅读 · 0 评论 -
C++11:提高类型安全
1 强类型枚举 C98的enum是非强类型作用域(在一个子命名空间定义的enum其父空间也可加enum成员,即enum相当于全局的,容易引起重复值),允许隐式类型转换(这条规则可以允许不同enum类型间相互比较成员值),占用存储空间及符号性不确定。C++11引入了强类型枚举enum class/struct具有以下特点:强作用域,子空间的枚举成员不会输出到父空间中; 转换限制,枚原创 2013-12-22 21:53:40 · 1591 阅读 · 0 评论