1.constexpr
声明的变量的值一定是个常量表达式,必须用常量表达式初始化
2.类型别名using
using type=类名 将type设置为类名的别名
3.auto类型声明符. 自动根据赋的值类型声明变量
4.decltype() 将括号内返回的值的类型作为声明的变量的类型. 如果是2层括号,声明的是返回类型的引用
5.使用命名空间: using namespace::name
6.显示类型转换
static_cast<目标类型>(表达式)正常的类型转换, 还有dynamic_cast,const_cast,reinterpret_cast
7.返回{}包起来的东西,其实就是返回vector, 如 return {"a","b"} char* 类型的vector
8.函数指针
正常声明函数的格式上在函数名前面加*并且用()包起来如int (*f)(int a,int b)
9.委托构造:其实就是打乱了参数顺序,完全可以用正常的构造函数实现所谓的委托构造
10.动态内存与智能指针
头文件<memory>
shared_ptr类 . 创建共享指针,就是指向的对象可以被更多其他指针指向.如shared_ptr<string> p1=str; str是string类型
unique_ptr类,和shared_ptr类似.指向的对象不能被其他指针指向.
make-shared: 最安全的分配和使用动态内存的方法
如 : shared_ptr<int>p=make_shared<int>(42) 指针指向动态内存创建的内存,初始化为42
这样的指针将会自动安全释放内存
...................