<<C++ Primer>> 第 6 章 函数
术语表
第 6 章 函数
二义性调用(ambiguous call): 是一种编译时发生的错误,造成二义性调用的原因时在函数匹配时两个或多个函数提供的匹配一样好,编译器找不到唯一的最佳匹配。
实参(argument): 函数调用时提供的值,用于初始化函数的形参。
Assert: 是一个预处理宏,作用于一条表示条件的表达式。当未定义预处理遍历NDEBUG时,assert对条件求值。如果条件为假,输出一条错误信息并终止当前程序的执行。
自动对象(automatic object): 仅存在于函数执行过程中的对象。当程序的控制流经过此类对象的定义语句时,创建该对象;当到达了定义所在的块的末尾时,销毁该对象。
最佳匹配(best match): 从一组重载函数中为调用选出的一个函数。如果存在最佳匹配,则选出的函数与其他所有可行函数相比,至少在一个实参上时更优的匹配,同时在其他实参的匹配上不会更差。
传引用调用(call by reference): 参见引用传递。
传值调用(call by value): 参见值传递。
候选函数(candidate function): 解析某次函数调用时考虑的一组函数。候选函数的名字应该与函数调用使用的名字一致,并且在调用点候选函数的声明在作用域之内。
constexpr: 可以返回常量表达式的函数,一个constexpr函数被隐式地声明成内联函数。
默认实参(defalut argument): 当调用缺少了某个实参时,为该实参指定地默认值。
可执行文件(executable file): 是操作系统能够执行的文件,包含着与程序有关的代码。
函数(function): 可调用的计算单元。
函数体(function body): 是一个块,用于定义函数所执行的操作。
函数匹配(function matching): 编译器解析重载函数调用的过程,在此过程中,实参与每个重载函数的形参列表逐一比较。
函数原型(function prototype): 函数的声明,包含函数名字,返回类型和形参类型。要调用某函数,在调用点之前必须声明该函数的原型。
隐藏名字(hidden name): 某个作用域内声明的名字会隐藏掉外层作用域中声明的同名实体。
initalizer_list: 是一个标准类,表示的是一组花括号包围的类型相同的对象,对象之间以逗号隔开。
内联函数(inline function): 请求编译器在可能的情况下在调用点展开函数。内联函数可以避免常见的函数调用开销。
链接(link): 是一个编译过程,负责把若干对象文件链接起来形成可执行程序。
局部静态对象(local static object): 它的值在函数调用结束后仍然存在。在第一次使用局部静态对象前创建并初始化它,当程序结束时局部静态对象才会被销毁。
无匹配(no match): 是一种编译时发生的错误,原因时在函数匹配过程中所有函数的形参都不能与调用提供的实参匹配。
对象代码(object code):编译器将我们的源代码转换成对象代码格式。
对象文件(object file): 编译器根据给定的源代码生成保存对象的文件。一个或多个对象文件经过链接生成可执行文件。
对象生命周期(object lifetime): 每个对象都有相应的生命周期。块内定义的非静态对象的生命周期从它的定义开始,到定义所在的块末尾为止。程序启动后创建全局对象,程序控制流经过局部局部静态对象的定义时创建该局部静态对象;当main函数结束时销毁全局对象和局部静态对象。
重载确定(overload resolution): 参见函数匹配。
重载函数(overload function): 函数名与其他函数相同的函数。多个重载函数必须在形参数量或形参类型上有所区别。
形参(parameter): 在函数的形参类别中声明的局部变量。用实参初始化形参。
引用传递(pass by reference): 描述如何将实参床底给引用类型的形参。引用形参和其他形式的引用工作机理类似,形参被绑定到相应实参值的一个副本。
值传递(pass by value): 描述如何将实参传递给非引用类型的形参。非引用类型的形参实际上时相应实参值的一个副本。
预处理宏(perprocessor macro): 类似于内联函数的一种预处理功能。除了assert之外,现代C++程序很少再使用预处理宏了。
递归循环(recurision loop): 描述某个递归寒素没有终止条件,因而不断调用自身直至耗尽程序栈空间的过程。
递归函数(recurision function): 直接或间接调用自身的函数。
返回类型(return type): 是函数声明的一部分,用于指定函数返回值的类型。
分离式编译(separate compilation): 把一个程序分割成多个独立源文件的能力。
尾置返回类型(trailing return type): 在参数类别后边指定的返回类型。
可行函数(viable function): 是候选函数的子集。可行函数能匹配本次调用,他的形参数量于调用提供的实参数量相等,并且每个似乎从类型都能转换成相应的形参类型。
()运算符( ()operator): 调用运算符,用于执行某函数。括号前面是函数名或函数指针,括号内是以逗号隔开的实参列表(可能为空)。
<<C++ Primer>> 第 6 章 函数的更多相关文章
- [C++ Primer] 第6章: 函数
参数传递 const形参和实参: 顶层const作用于对象本身, 和其他初始化过程一样, 当用实参初始化形参时会忽略掉顶层const, 换句话说, 形参顶层const被忽略掉了, 当形参有顶层cons ...
- 《C++ Primer》 第四版 第7章 函数
<C++ Primer> 第四版 第7章 函数 思维导图笔记 超级具体.很具体,图片版,有利于复习查看 http://download.csdn.net/detail/onlyshi/94 ...
- C++ primer plus读书笔记——第8章 函数探幽
第8章 函数探幽 1. 对于内联函数,编译器将使用相应的函数代码替换函数调用,程序无需跳到一个位置执行代码,再调回来.因此,内联函数的运行速度比常规函数稍快,但代价是需要占用更多内存. 2. 要使用内 ...
- C++ primer plus读书笔记——第7章 函数——C++的编程模块
第7章 函数--C++的编程模块 1. 函数的返回类型不能是数组,但可以是其他任何一种类型,甚至可以是结构和对象.有趣的是,C++函数不能直接返回数组,但可以将数组作为结构或对象的组成部分来返回. 2 ...
- C++ Primer 第3章 字符串、向量和数组
C++ Primer 第3章 字符串.向量和数组 C Primer 第3章 字符串向量和数组 1 命名空间的using声明 2 标准库类型string 3 标准库类型vector 4 迭代器介绍 5 ...
- C++ Primer 第2章 变量和基本类型
C++ Primer 第2章 变量和基本类型 C Primer 第2章 变量和基本类型 1 基本内置类型 算数类型 类型转换 字面值常量 2 变量 变量定义 3 复合类型 引用d左引用 指针d 4 c ...
- 逆向基础 C++ Primer Plus 第二章 开始学习C++
C++ Primer Plus 第二章 开始学习C++ 知识点梳理 本章从一个简单的C++例子出发,主要介绍了创建C++程序的步骤,以及其所包含的预处理器编译指令.函数头.编译指令.函数体.注释等组成 ...
- C++ Primer Plus 第一章 预备知识
C++ Primer Plus 第一章 预备知识 知识点梳理 本章主要讲述了C++的由来,讨论了面向过程语言与面向对象语言的区别,介绍了ANSI/ISO制定的C++标准,阐述了在Windows.Mac ...
- 零基础学Python--------进阶篇 第6章 函数
第6章 函数 6.1函数的创建和调用 提到函数,大家会想到数学函数吧,函数是数学最重要的一个模块,贯穿整个数学学习过程.在Python中,函数的应用非常广泛.在前面我们已经多次接触过函数.例如,用于输 ...
随机推荐
- Java Web项目案例之---登录注册和增删改查(jsp+servlet)
登录注册和增删改查(jsp+servlet) (一)功能介绍 1.用户输入正确的密码进行登录 2.新用户可以进行注册 3.登录后显示学生的信息表 4.可以添加学生 5.可以修改学生已有信息 6.可以删 ...
- JavaWeb_(Struts2框架)struts.xml核心配置、动态方法调用、结果集的处理
此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...
- 微信小程序_(校园视)开发视频的展示页_上
微信小程序_(校园视) 开发用户注册登陆 传送门 微信小程序_(校园视) 开发上传视频业务 传送门 微信小程序_(校园视) 开发视频的展示页-上 传送门 微信小程序_(校园视) 开发视频的展示页-下 ...
- LeetCode 6. Z字形变换(ZigZag Conversion)
题目描述 将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数: P A H N A P L S I I G Y I R 之后从左往右,逐行读取字符:"P ...
- 设置Chart.js默认显示Point点的值不用鼠标经过才显示
Chart.js默认的显示方式是鼠标经过Point点的时候才会显示这个点的值,代码如下: var testdata: { periodNum: ["2018121","2 ...
- 爬取百度网盘资源报user is not authorized, hitcode:119
爬取百度网盘资源报user is not authorized, hitcode:119 一.总结 一句话总结: 可能是百度网盘禁止非客户端环境下载大文件,所以将请求头改为客户端:'User-Agen ...
- 简单的多屏播放器示例(vlc+qt)
介绍 简单的多屏播放器 最多同时播放16个视频 支持本地文件和rtsp.rtmp等流媒体播放 VS2015工程,依赖Qt+VLC 练手作品 截图 下载 程序:download.csdn.net/d ...
- PHP AJAX返回 "TEXT"
例子:通过AJAX间接访问数据库,查出Nation表显示在页面上,并添加删除按钮 //首先在外层添加一个按钮,并造好表头 <div><input type="button& ...
- 强大的unique
强大的unique 两道红题为例眼熟一下unique P1138 第k小整数 题解 这里用到了STL的去重函数哦 unique 首先你有一个待处理的数组 a[n] 一定要先排序鸭 sort( a+1 ...
- Struts2.3+Spring3.2+Hibernate4.2框架搭建
一.环境 SSH使用的版本:struts2.3.14.spring3.2.2.hibernate4.2.0 数据库:MYSQL tomcat版本:apache-tomcat-7.0.42 二.所需要导 ...