C++11新特性的读书记录
来源:互联网 发布:苹果电脑开淘宝店铺 编辑:程序博客网 时间:2024/05/20 05:03
第二章 保持兼容
- 预定义宏:通过预定义宏,#ifdef #endef等预处理命令,完成代码的平台性支持;
- func : 反回所在函数名字
#progma
一条预处理指令,#progma once
:告诉编译器,该头文件只被编译一次
等同与:#ifndef THIS_HEADER
#define THIS_HEADER
// 一些头文件;#endif
变长参数的宏定义和VA_ARGS: (P41)
FILE, LINE宽窄字符串的链接
char - wchar_t:先转换,再链接long long:在不同的平台上,可以有不同的长度,但至少是64位
long long; unsigned long long ;
信息在中,记录了LLONG_MIN,LLONG_MAX,ULL_MAX(P42)整形的提升:Integral promotion:
转化规则:低等级的整形转化成高等及的,有符号的转换为无符号的。__cplusplus
,用来检测编译器支持的板本,可以使用#error报错静态断言:断言并不是程序运行时所需要的,而是帮助程序调试。C++ 提供标准assert宏,帮助程序断言。
可以使用宏NDEBUG 来禁用宏assert;快速初始化成员变量:
- 非静态成员的sizeof:c++11支持对类中非静态成员使用sizeof
- friend 类友元的声明不再需要使用关键字class,而且可以声明一个类的别名为类友元;
- 虚函数就是给派生类用来重载的。如果不想让派生类来重写,就定义为非虚函数。
- final 关键字的作用,是禁止派生类重写final所修饰的需函数,C++11借鉴了java的这种方式。在派生类的过程中,通过final可以任意的终止一个接口的可重载性。
- 派生类在虚函数声明时使用了描述符override,那么派生类必须重写其基类中同名函数,否则代码无法编译通过。解决继承结构长、接口错误等问题。
extern,外部变量声明:
extern int i; // 在声明处的文件的数据区,不会存在这个变量i ;
类似外部变量,也存在“外部模板”的问题。在不同的代码文件中调用func传入相同类型的参数,会出现多个相同的函数实例。
template <typename T> void func(T){}
连接器通过编译器的辅助手段,会把重复的模板函数删除。
使用“外部模板”,可以省略编译器的实例化和连接器的删除。节省编译器和连接器的时间消耗。显示实例化(explicit instantiation):
template void func<int>(int);
- 外部模板声明
extern template void func<int>(int);
第三章 通用为本,专用为末
- 继承构造函数
- C++自定义类型:类!是C++面向对象的基础。
- 类可以自动获得基类的成员变量和接口,(虚函数,纯虚函数,public派生类);
- 类的非虚函数无法被派生类使用,包括构造函数;
- using::声明派生类使用基类的成员函数;(76);
- 基类的构造函数有默认的参数,派生类不会继承构造函数的默认参数;默认参数会导致多个构造函数的产生。
1.
委派构造函数
public: Info() {InitReset();}; Info(int i):Info() {type = i;}; Info(char e):Info() {name = e;}; // 委派构造函数:目标构造函数(初始化列表位置)
- 委派构造:委派函数将构造任务委派给目标函数来完成类的这样一种构造方式。
移动语义:
- 悬挂指针,不在指向有效的内存,在悬挂指针上释放内存会产生严重的错误。
- 移动语言:算了吧,没看懂,下次再看;(91)
坐值,右值,右值引用
- 可以取地址,有名字的是左值,反之是右值
- C++11中,右值有两个概念:将亡值,纯右值;
- C++11中,所有的值属于,左值,将亡值,纯右值,三者之一(94);
- 左值引用和右值引用都是引用类型
- 左值引用是具名变量值的别名,右值引用是不具名(匿名)变量的别名。(100)
- C++11新特性的读书记录
- C+11 新特性
- C 99的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- [C++]C++11新特性
- 【C++】 C++11新特性
- 记录:C++11 新特性基本数据类型
- 新特性记录
- PHP新特性记录
- [C++] C++11给我们带来的新特性
- C++primer中提到的C++11新特性总结
- 《罪恶王冠》真的烂尾了吗?
- 接口回调
- 97. Interleaving String
- 字符串常用加密、解密工具类.
- Goroutine的调度分析(一)
- C++11新特性的读书记录
- 浅谈今昔丧葬制度
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 H A Cache Simulator
- docker——kafka-manager安装
- 理解事务的4种隔离级别
- mac下mamp给php7.0安装redis扩展的各种坑.
- Struts2SpringHibernate框架的简单整合2
- 最长回文子串
- [LeetCode] Search a 2D Matrix II