北大青鸟 c 第二章 高级函数特性 Ⅴ ersion3.0 CHA
Version 3.0 高级函数特性 第二章
回顾 传统编程的缺点 对象 类 抽象 继承 封装 ·多态性 北大青鸟
2 回顾 • 传统编程的缺点 • 对象 • 类 • 抽象 • 继承 • 封装 • 多态性
目标 引用 默认参数 内联函数 函数重载 北大青鸟
3 目标 • 引用 • 默认参数 • 内联函数 • 函数重载
按值传递 函数调用中复制参数的值 函数只能访问自己创建的副本 对副本进行的更改不会影响原始变量 100# 25 25 北大青鸟
4 按值传递 • 函数调用中复制参数的值 • 函数只能访问自己创建的副本 • 对副本进行的更改不会影响原始变量 25 100# 25
按引用传递 函数调用中传递参数的引用 主要优点 函数可以访问主调程序中的实际变量 提供一种将多个值从被调函数返回到主调程序 的机制 100# 100 25 北大青鸟
5 按引用传递 • 函数调用中传递参数的引用 • 主要优点 – 函数可以访问主调程序中的实际变量 – 提供一种将多个值从被调函数返回到主调程序 的机制 25 100# 100
向函数传递引用21 引用提供对象的别名或可选名 &"告诉编译器将变量当作引用 void swap (int& i, int& j) int tmp p i void main() int x, yi swap(x, y) 6 北大青鸟
6 向函数传递引用 2-1 • 引用提供对象的别名或可选名 • “&”告诉编译器将变量当作引用 void swap(int& i, int& j) { int tmp = i; i = j; j = tmp; } void main() { int x, y; swap(x,y); }
向函数传递引用22 引用就是对象本身 不要认为 引用是指向对象的指针 引用是该对象的副本 大的数据结构按引用传递,效率非常高 北大青鸟
7 向函数传递引用 2-2 • 引用就是对象本身 • 不要认为 – 引用是指向对象的指针 – 引用是该对象的副本 • 大的数据结构按引用传递,效率非常高
返回引用 返回引用不是返回变量的副本 函数头中包含一个“& int &fn(int &num return(num)i void main() int n1, n2 n1=fn(n2); 北大青鸟
8 返回引用 • 返回引用不是返回变量的副本 • 函数头中包含一个“&” int &fn(int &num) { return(num); } void main() { int n1, n2; n1 = fn(n2); }
常量引用 用于不希望修改对象,以及要把大对象当 作输入参数的情况 高效性和安全性 double distance(const point& pl, const point& p2)i 将引用声明为常量,不能再绑定别的对象 int const sri num1 北大青鸟
9 常量引用 • 用于不希望修改对象,以及要把大对象当 作输入参数的情况 • 高效性和安全性 double distance(const point& p1, const point& p2); • 将引用声明为常量,不能再绑定别的对象 int const &ri = num1;
函数 函数声明 函数名 函数返回值的类型 函数的参数个数和类型 函数声明可以不包含参数名 调用函数时可以不指定全部参数 北大青鸟
10 函数 • 函数声明 – 函数名 – 函数返回值的类型 – 函数的参数个数和类型 • 函数声明可以不包含参数名 • 调用函数时可以不指定全部参数