ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] ### 引用参数 ***** > 所有引用传递的参数必须加上`const` 定义: 在 C 语言中, 如果函数需要修改变量的值, 参数必须为指针, 如`int foo(int*pval)`. 在 C++ 中, 函数还可以声明引用参数:`int foo(int&val)`. 优点: 定义引用参数防止出现`(*pval)++`这样丑陋的代码. 像拷贝构造函数这样的应用也是必需的. 而且更明确, 不接受`NULL`指针 缺点: 容易引起误解, 因为引用在语法上是值变量却拥有指针的语义. 函数参数列表中, 所有引用参数都必须是`const`: ``` > void Foo(const string &in, string *out); ``` ### 右值引用 ***** >只在定义移动构造函数与移动赋值操作时使用右值引用. 不要使用`std::forward`. 1. **新增基于范围的for循环** ``` int nArr[5] = {1,2,3,4,5}; for(int &x : nArr) { x *=2; //数组中每个元素倍乘 } ``` **2、自动类型推断 auto** 3.**匿名函数 Lambda** **4、后置返回类型(tailng-return-type)** **5、显示重写(覆盖)override和final** override 这个特殊的标识符意味编译器将去检查基类中有没有一个具有相同签名的虚函数,如果没有,编译器就会报错!   C++11还增加了防止基类被继承和防止子类重写函数的能力。这是由特殊的标识符final来完成的 **6、空指针常量 nullptr** **7、long long int类型** **8、模板的别名** **9、允许sizeof运算符可以再类型数据成员上使用,无需明确对象。** **10、线程支持** **11、元组类型** 其它新增标准程序库   正则化表达式库<regex>;字符串类<string>字新增与其他类型互换的方法,如to_string(),stoi(),stol等;STL标准模板库新增unordered_map以及unordered_set,基于hash表的关联容器等等。这些详细使用可自行上网查找,也十分重要的知识点。