作者:winterTTr ( 转载请注明 ) 资料来源:《STL标准库》
今天主要总结一下C++的新语言特性
1.模板
基本上STL中的大部分都是使用模板来编写的,主语是为了便于多种类型的使用。
对于模板本身,C++还有一些特别的支持
- 无类型模板参数
- 默认模板参数
- typename关键字的引入
- 成员模板函数:主要用于类型转换
- 嵌套模板类
2.基础类型的显式初始化
3.异常捕获机制
对于异常返回,可以理解为函数本身的一种return。当然所有的栈空间的变量,都会被释放(析构)。
异常会一直返回,知道接触到main或者被catch捕获。
4.命名空间
类似java等中的package,为了避免名字污染。
5.bool类型的引入
同时引入false和true
6.explicit关键字
这是为了方式在初始化函数中的隐式转换
7.新的类型转换函数
static_cast用于逻辑上可以转换的,例如:
dynamic_cast用于按照类型进行向上转换
注意点:如果使用dynamic_cast进行引用转换的时候,失败的话会抛出bad_cast异常
const_cast转换掉变量的const属性
reinterpret_cast按照另一种变量类型重新读取变量的内容
8.初始化静态成员变量
9.可以定义没有返回值的main