Adventures in Functions
速度还行,两天看完一章,就是有细节没去扣。书上的大部分知识点和代码都看了,这个还是可以的。
今天继续来学习函数的高级特性,要涉及到以下的主题。
- 内联函数(inline function)
- 引用变量(reference variable)
- 通过引用传递函数参数
- 默认变量
- 函数重载
- 函数模板(template)
- 函数模板的specializations
C++内联函数
从机器语言的角度去解释函数的调用为什么会有开销,这一点值得深入研究以下,增加认识。
C++的内敛函数会用相应的代码去替代函数调用,这样的话不用跳到另一处去执行然后再跳回来,所以内敛函数要比一般的函数运行的稍快一些。
内敛函数不好的地方就是会占用内存,比如这个函数在10个地方被调用了,那么内联函数的这个代码会被存10份。
如何声明一个内联函数?
什么时候适合使用内联函数?
编译器一定认可你的内联函数么?
C++内联函数和C的宏定义(macro definition)
#include <iostream>
// 内联函数的定义
inline double square(double x) {return x * x; };
int main() {
    using namespace std;
    double a, b;
    double c = 13.0;
    a = square(5.0);
    b = square(4.5 + 7.5);
    cout << "a = " << ", b = " << b << "\n";
    cout << "c = " << c;
    // c++的意思是, 先去计算表达式, c = 13
    // 把c = 3 拿去函数调用, 然后c再自增
    cout << ", c squared = " << square(c++) << "\n";
    cout << "Now c = " << c << "\n";
    ;
}
C++引用
https://www.cnblogs.com/tuhooo/p/5377406.html
默认参数
不太喜欢用默认参数,就这样吧
函数重载
这个概念我知道
函数模板
C++里面的泛型编程,抽取与类型无关的代码,达到通用的效果。
Adventures in Functions的更多相关文章
- c++中左值的含义
		<<cpp primer plus 6th edition>>中的原文(Chapter 8 Adventures in Functions): What is an lvalu ... 
- [ZZ]  Adventures with Gamma-Correct Rendering
		http://renderwonk.com/blog/index.php/archive/adventures-with-gamma-correct-rendering/ Adventures wit ... 
- asp.net MVC helper 和自定义函数@functions小结
		asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率.但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们 ... 
- 【跟着子迟品 underscore】Array Functions 相关源码拾遗 & 小结
		Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ... 
- 【跟着子迟品 underscore】Object Functions 相关源码拾遗 & 小结
		Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ... 
- ajax的使用:(ajaxReturn[ajax的返回方法]),(eval返回字符串);分页;第三方类(page.class.php)如何载入;自动加载函数库(functions);session如何防止跳过登录访问(构造函数说明)
		一.ajax例子:ajaxReturn("ok","eval")->thinkphp中ajax的返回值的方法,返回参数为ok,返回类型为eval(字符串) ... 
- QM模块包含主数据(Master data)和功能(functions)
		QM模块包含主数据(Master data)和功能(functions) QM主数据 QM主数据 1 Material Master MM01/MM02/MM50待测 物料主数据 2 Sa ... 
- jQuery String Functions
		In today's post, I have put together all jQuery String Functions. Well, I should say that these are ... 
- 2-4. Using auto with Functions
		在C++14中允许使用type deduction用于函数参数和函数返回值 Return Type Deduction in C++11 #include <iostream> using ... 
随机推荐
- [AaronYang]C#人爱学不学[1]
			当前编写时间:2014年12月24日21:11:14 编写人:杨洋(Aaronyang) 新文章:[AaronYang]C#人爱学不学[1] 声明:->可以理解为 联想到,或者关联的意思. ... 
- 【转】Currying 的局限性
			Currying 的局限性 很多基于 lambda calculus 的程序语言,比如 ML 和 Haskell,都习惯用一种叫做 currying 的手法来表示函数.比如,如果你在 Haskell ... 
- 【转】完全用Linux工作
			我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作. NU/Linux 不是每个人都想用的.如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了. 我不是 ... 
- appium简明教程(7)——Desired Capabilities详解
			Desired Capabilities在启动session的时候是必须提供的. Desired Capabilities本质上是key value的对象,它告诉appium server这样一些事情 ... 
- linux 命令中的find locate whereis  which type 使用区别
			find 最强大,但参数也较多,需指定查找目录,如 find / -name “filename” locate 是一个快速查找命令,有预先索引好的数据库,由于数据库是定时更新,因此,结果上可能会有迟 ... 
- IPython介绍及安装
			IPython介绍 - CSDN博客https://blog.csdn.net/gavin_john/article/details/53086766 python命令行在windows下实现tab自 ... 
- VS Code 中文注释显示乱码
			将设置中的"files.autoGuessEncoding"项的值改为true即可. 1.文件 2.首选项 3.设置 4.搜索 "files.autoGuessEncod ... 
- 三角函数 与 JavaScript
			三角函数 canvas 和 JavaScript 中所有与角相关的API如Math.sin().Math.cos().Math.tan(),都需要以弧度为单位值.但大部分人还是习惯以角度单位.所以 ... 
- python标准库介绍——36   popen2   模块详解
			==popen2 模块== ``popen2`` 模块允许你执行外部命令, 并通过流来分别访问它的 ``stdin`` 和 ``stdout`` ( 可能还有 ``stderr`` ). 在 pyth ... 
- U811.1接口EAI系列之一-通用访问EAI方法--统一调用EAI公共方法--VB语言
			1.现在做的项目是关于业务系统与U811.1的接口项目. 2.那么就需要调整通过EAI调用生成U8业务单据. 3.下面就一个通用的向U8-EAI传递XML的通用方法 4.肯定有人会问怎么还用VB调用呢 ... 
