您的位置:首页 > 编程语言 > C语言/C++

C++ Primer Plus 第八章笔记

2018-03-10 17:00 225 查看
1.        内联函数的运行速度比常规函数稍快,但占用内存。要使用这项特性,需在函数声明和定义前加上关键字incline。
2.        必须在声明引用时将其初始化,且一旦与某个变量关联起来,就不能改变。
3.        若将引用作为函数的参数时,其实参应是变量,不能是表达式。
4.        对于形参为const引用的C++函数,如果实参不匹配(实参类型正确,但不是左值;实参类型不正确,但可转化为正确的类型),则C++将创建类型正确的匿名变量,将函数调用的参数的值传递给该匿名变量。
5.        C++11新增了右值引用,可指向右值,使用(&&)声明。
6.        继承的特征:派生类继承了基类的方法;基类引用可以指向派生类对象而无需进行强制类型转换。
7.        存储格式化设置并恢复:



8.        使用默认参数时,只有原型指定了默认值,函数定义与没有默认参数时完全相同。
9.        使用被重载的函数时,需要在函数调用中使用正确的参数类型,否则参数会存在有几种强制类型转换的方式,而被拒绝调用。
10.    若要重载模板定义,被重载的模板的函数特征标必须不同。
11.    显式具体化提供一个具体化函数定义,当编译器找到与函数调用匹配的具体化定义时,将使用该定义,而不再寻找模板。
注意:显式具体化的原型和定义应以template<>开头,并通过名称指出类型;
     具体化优先于常规模板,废模板函数优先于具体化和常规模板。
12.    编译器使用模板为特定类型生成函数定义时,得到的是模板实例,这种实例化方式被称为隐式实例化。
13.    显示实例化:在声明前加上关键字template,并在函数名后用<>符号指示类型。
注意:不能再同意文件中使用同一种类型的显示实例和显式具体化。
14.    C++11新增关键字decltype使用:decltype(expression)var;
若expression是一个没有用()括起的标识符,则var的类型与expression相同,否则var为指向其类型的引用;若expression是一个函数调用,则var类型与函数返回类型相同,但不实际调用函数;若以上条件均不满足,则var类型与expression相同。
15.    C++11后置返回类型:



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: