首页 > 代码库 > C++ primer 第六章笔记
C++ primer 第六章笔记
Chapter 6 函数
#函数基础
- 声明:返回类型、函数名、形参列表、分号
- 定义:返回类型、函数名、形参列表、函数体
- 调用:函数或函数指针,实参列表
#参数传递
1.形参是引用类型,它将绑定到对应的实参上. 否则,将实参的值拷贝后赋给形参;
2.C++,建议使用引用类型的形参代替指针;
//传引用参数 void reset(int &i){ i = 0; } int j = 24; reset(j); cout << j << endl; //输出是0;
3.使用引用,避免拷贝. 若函数无须改变引用形参的值,最好将其声明成常量引用;
bool isShorter(const string &s1 , const string &s2){ return s1.size() < s2.size(); }
4.数组形参
数组有两个特殊的性质
-
不支持拷贝
-
数组名通常会自动转化为指针
5.main:处理命令行选项;
int main( int argc, char **argv ) {}
- 当使用 argv 中的实参时,一定要记得 可选的实参从 argv[1] 开始;argv[0]保持程序的名字,非用户输入
#返回类型与return语句
1.在含有return语句的循环后面应该也有一句return语句;
2.不要返回局部对象的引用或指针
3.引用返回左值: 如果函数返回的是引用类型的对象,可以直接对函数调用的结果进行赋值
getVal( s, 0 ) = ‘A‘;
4.列表初始化返回值:
vector<string> process() { return {"Hi", "bye"}; }
5.返回数组指针
- 数组不能被拷贝,所以不能返回数组, 不过函数可以返回 数组的指针 或引用;
- 声明一个返回数组指针的函数:
//数组指针:指向数组的指针 int (*p)[10]; p即为指向数组的指针
Type (*function (parameter_lst) [dimension]
eg:int (*func(int i))[10];
-
这种写法难免有些复杂,而复杂容易产生错误,有三种方式简化 P206
- 类型别名
- 尾置返回类型
- decltype
//补充
6.函数重载
- main函数不能重载
- 最佳匹配
7.
tobecontinued
C++ primer 第六章笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。