第七章 函数

来源:互联网 发布:mac自带的清理软件 编辑:程序博客网 时间:2024/05/16 08:42
第七章 函数
1、函数返回类型
不能返回另一个函数或者内置数组类型,可以返回指向函数的指针,或指向数组元素的指针的指针

2、参数传递
1)指针形参
函数通过指针实现赋值,修改指针所指向对象的值
可以将const对象的指针初始化为指向非const对象,不可以让指向非const对象的指针指向const对象
2)引用形参
通过引用形参返回额外的信息
如果引用形参的唯一目的是避免复制实参,应该定义为const引用
3)数组形参
处理数组会自动转换为指针
通过指针形参做的任何改变都在修改数组元素本身
通过引用传递必须检查数组大小是否匹配
void print(int (&arr)[10])int main(int argc, char *argv[])
4)可变形参
void foo(para_list, ...);

3、return语句
1)不要返回局部变量
函数执行完毕,变量占用的内存会被释放
2)不希望引用返回值被修改
返回值应该声明为const

4、函数声明
1)在头文件提供函数声明
确保所有声明保持一致
2)默认实参
替换函数调用缺少的尾部实参

5、局部变量
自动对象:函数结束时自动被撤销
静态局部对象:程序结束时不会被撤销

6、内联函数
避免函数调用开销inline
把内联函数放入头文件

7、类的成员函数
函数原型必须在类中定义,但是函数体可以在类外定义
编译器隐式地将在类内定义的成员函数当做内联函数
每个成员函数有一个额外的、隐含的形参this
const成员函数不能修改调用该函数的对象

8、重载函数
1)重载
通过形参判断,不能仅仅基于返回类型、形参const
2)重载与作用域
局部地声明一个函数,该函数将屏蔽而不是重载

9、指向函数的指针
函数指针的类型由返回类型以及形参表确定,与函数名无关