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

这样的指针将会自动安全释放内存

 

...................