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 ...
随机推荐
- Struts2之数据标签(二)
Struts2之数据标签(一):http://blog.csdn.net/u012561176/article/details/46848817 1.action标签:使用此标签能够同意在JSP页面中 ...
- PowerShell 批量签入SharePoint Document Library中的文件
由于某个文档库设置了编辑前签出功能,导致批量导入文件时这些文件默认的状态都被签出了.如果手动签入则费时费力,故利用PowerShell来实现批量签入Document Library中的文件. Reso ...
- java的跳转和重定向,加载显示层
HttpServltRequest req, HttpDervletResponse resp 的 req.sendRedirect('页面');跳转到页面 浏览器地址跳转 --------- ...
- sqlite 判断表中是否包含 某个字段
数据库 都有一个 根表..(我的理解) 也就是 你创建了一个数据库 里面就带有 一个表 sqlite_master 字段有 type , name , tbl_name , rootpage ,sq ...
- 安装/移除 MySQL 服务
MySQL Community Server 下载:https://dev.mysql.com/downloads/mysql/ 以下内容使用的版本为:mysql-5.7.17-win32.zip 1 ...
- 谷歌IP地址
http://www.yuxiaoxi.com/2014-06-11-google-meet-you.html
- IOS使用AVAudioPlayer播放mp3歌曲文件并监听来电打断
本实例实现了AVAudioPlayer播放mp3歌曲文件,实现了播放.暂停.继续操作,音乐音量控制.播放进度显示,同时监听来电打断事件 一.控件初始化 - (void)viewDidLoad { [s ...
- 【iOS XMPP】使用XMPPFramewok(二):用户登录
转自:http://www.cnblogs.com/dyingbleed/archive/2013/05/10/3069397.html 用户登录 准备工作 比较知名的开源XMPP服务器:一个是Ope ...
- hdu 1879 继续通畅工程(最小生成树)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1879 /************************************************* ...
- mongoose的update函数中的回调函数是必须要传的吗
mongoose中的update的回调函数是必须要传的,如果不传,则不会更新. 例如这样写是不会更新的 tagModel.update({name:tagName},{$inc:{total:1}}, ...