1 变量

1.1 自动对象:只存在于块执行期间的对象。
1.2 局部静态对象local static object

在程序的执行路径第一次经过对象定义语句时初始化,
程序终止结束

2.参数

2.1 指针形参

void reset(int *ip)
{*ip = 0;  // changes the value of the object to which ip pointsip = 0;   // changes the local copy of ip; the argument is unchanged
}

2.2. const 形参

void reset(int &);
const int ci;
reset(ci);//error

2.3. 数组引用形参

// returns a reference to an array of five int elements
void f(int (&arr)[5] )

2.4. 多维数组

void print(int (*ia)[10], size_t size); <=>
void print(int ia[][10], size_t size);

eg.

void main(int argc, char* argv[])

2.5.可变形参

. initializer_list

void error_msg(initializer_list<string> il);
void error_msg(ErrCode e, initializer_list<string> il);

. 省略符形参…
void f(…);

3 返回值
3.1. 值是如何被返回的:临时量
3.2. 不能返回局部对象的引用或指针
3.3. 引用返回左值

char &get(string &str, int n)
{return str[n];//此处没有做错误判断哦
}

3.4 列表初始化返回值

vector<string> f(){return {"1", "2"};
}

3.5. main函数:编译器隐式插入return 0
3.6. 返回数组指针

eg.

int (*func(int i))[10];
auto func(int i) -> int (*)[10];//使用decltype
int odd[] = {};
decltype(odd) *f(int i){return &odd;
}

C++ Primer 5th笔记(6)chapter6 函数: 参数相关推荐

  1. C++ Primer 5th笔记(chap 16 模板和泛型编程)转发参数包

    1. 使用可变参数模板与 forward 机制来编写函数, 实现将其实参不变地传递给其他函数(保持实参的原始类型) 1.1 eg class StrVec {public:template <c ...

  2. C++ Primer 5th笔记(chap 16 模板和泛型编程)可变参数模板

    1. 可变参数模板( variadic template) 一个接受可变数目参数的模板函数或模板类. 1.1 参数包 (parameter packet) 可变数目的参数被称为参数包,存在两种参数包: ...

  3. C++ Primer 5th笔记(chap 16 模板和泛型编程)模板特例化

    1. 场景 //第一个版本:可以比较任意两个类型 template <typename T> int compare (const T &, const T & );//第 ...

  4. C++ Primer 5th笔记(chap 16 模板和泛型编程)包扩展

    1. 扩展 ( expand) 扩展一个包就是将它分解为构成的元素, 对每个元素应用模式, 获得扩展后的列表. 通过在模式右边放一个省略号(-)来触发扩展操作.当扩展一个包时,我们还要提供用于每个扩展 ...

  5. C++ Primer 5th笔记(chap 16 模板和泛型编程)转发

    1. 转发 某些函数需要将其一个或多个实参连同类型不变地转发给其他函数. 因此需要保持被转发实参的所有性质, 包括实参类型是否是 const 的以及实参是左值还是右值. //接受一个可调用对象和另外两 ...

  6. C++ Primer 5th笔记(chap 16 模板和泛型编程)std::move

    1. 标准库定义 / / 在返回类型和类型转换中也要用到 typename, 参见 16.1.3 节( 第 593 页 ) reference 是在 16.2.3 节( 第 605 页 ) 中介绍的 ...

  7. C++ Primer 5th笔记(chap 16 模板和泛型编程)模板实参推断和引用

    template < typename T> void f (T &p) 函数参数p是一个模板类型参数T的引用, 编译器会应用正常的引用绑定规则: const 是底层的, 不是顶层 ...

  8. C++ Primer 5th笔记(chap 16 模板和泛型编程)模板实参

    1. 类型参数可以使用任何名字(通常命名为 T) template <typename Foo> Foo calc (const Foo& a, const Foo& b) ...

  9. C++ Primer 5th笔记(chap 16 模板和泛型编程)类型无关和模板编译

    1. 编写类型无关的代码 泛型代码的两个重要原则: 模板中的函数参数是const的引用. 函数体中的条件判断仅使用<比较运算. 大多数类型,包括内置类型和我们已经用过的标准库类型(除unique ...

  10. C++ Primer 5th笔记(chap 12 动态内存)shared_ptr

    1. 相关概念 1.1 使用场景 • 程序不知道自己需要使用多少对象 • 程序不知道所需对象的准确类型 • 程序需要在多个对象间共享数据 1.2 实现原理 shared_ptr对象有一个关联的计数器, ...

最新文章

  1. 周立功-成功心法(2):通过讲故事营销自己
  2. postgres外部表
  3. hibernate教程--关联关系的映射
  4. 1_boostrap概述
  5. 【界面无法显示】getStorageInfoSync和getStorageSync的区别
  6. 【Elasticsearch】用ElasticSearch实现基于标签的兴趣推荐
  7. 华师网教计算机应用基础作业,华师大网络教育选修课《计算机应用基础统考》平时作业答案(13页)-原创力文档...
  8. php与ununtu通信,Ubuntu 20.04 LTS 已引入 PHP 7.4
  9. 机智云智慧烟感物联网解决方案
  10. vue 调用移动录像_vue H5项目调用手机摄像头录像并上传
  11. 推荐:3个Python好用的PDF库
  12. 为什么程序猿996会猝死,而企业家007却不会?
  13. 基于深度学习的13种通用图像分类模型及其实现
  14. 婚宴座位图html5,婚宴座位安排图 婚宴主桌安排示意图
  15. katana lookfile属性的修改overwride
  16. todo已完成任务_总结一下TODO的用法
  17. 阿里云全球交付中心正式成立,打造一流的全球服务能力
  18. 自从用了这款黑科技工具,妈妈再也不用担心我的c盘文件爆满了
  19. Julia Pro 1.0 下载安装教程
  20. 《寂静之声》口琴版,惊艳,有链接

热门文章

  1. yolov5论文叫什么_论文格式与论文查重到底是什么鬼?教你半小时搞定的独门技巧...
  2. oracle executesqlcommand,Oracle Execute Command Sql Script in Win
  3. 网络工程师面试:简要回答一下故障排除的过程?
  4. ML之模型文件:机器学习、深度学习中常见的模型文件(.h5、.keras)简介、h5模型文件下载集锦、使用方法之详细攻略
  5. DL之CNN:基于CRNN_OCR算法(keras,CNN+RNN)利用数据集(torch,mdb格式)训练来实现新图片上不定长度字符串进行识别—预测过程
  6. 成功解决 修改pip的默认安装packages包的路径
  7. Py之cairocffi:cairocffi的简介、安装、使用方法之详细攻略
  8. 成功解决sys.argv[1] IndexError: list index out of range错误
  9. auto-sklearn手册
  10. 20181204-1 每周例行报告