面向对象程序设计 引用与指针关系的分析 void Swap(inta,intb)∥传值调用 fint t=a; a=b; b=t;) void Swap( (int &a,int&b)∥引用调用 堂提要 fint t=a; a=b; b=t;) 第五章C++基础 void Swap(int*a,int*b)∥指针调用 {int;t=*a;,*a=*b;*b=t;} 51C++概述 52数据和表达式 区别:1.引用是某一对象的别名指针是53基本语句 某一变量的地址变量 5.4函数 2引用在定义时就必须初始化,即55数组与指针 为一已定义的对象的别名,不可 以重新赋值.指针可在使用时初 始化,且可以重新赋值
第五章 C++基础 5.1 C++概述 5.2 数据和表达式 5.3 基本语句 5.4 函数 5.5 数组与指针 引用与指针关系的分析 void Swap(int &a, int &b) //引用调用 {int t=a; a=b; b=t; } void Swap(int *a, int *b) //指针调用 {int t; t=*a; *a=*b; *b=t; } void Swap(int a, int b) //传值调用 {int t=a; a=b; b=t; } 区别: 1. 引用是某一对象的别名, 指针是 某一变量的地址变量. 2. 引用在定义时就必须初始化, 即 为一已定义的对象的别名, 不可 以重新赋值. 指针可在使用时初 始化, 且可以重新赋值
面向对象程序设计 引用的作用 1.引用可以象地址一样完成对所代表的 对象的操作 堂提要 2.对引用的操作不同与对指针的操作 它可直接作用于变量,所以更方便,更易 第五章C++基础 于理解. 51C++概述 引用的缺点 52数据和表达式 53基本语句 引用不能为空,即必须代表某一象,且不 5.4函数 能重新赋值.指针灵活性较好,但使用较 55数组与指针 不方便
第五章 C++基础 5.1 C++概述 5.2 数据和表达式 5.3 基本语句 5.4 函数 5.5 数组与指针 引用的作用: 1. 引用可以象地址一样完成对所代表的 对象的操作. 2. 对引用的操作不同与对指针的操作, 它可直接作用于变量, 所以更方便, 更易 于理解. 引用的缺点: 引用不能为空, 即必须代表某一象,且不 能重新赋值. 指针灵活性较好, 但使用较 不方便
面向对象程序设计 函数名重载:C+的特点 问题:设计一个函数完成两个数相加 分析:用C语言,就必须设计两不同名函数 int ladd (int a, int b) 堂提要 float Fadd(float a, float b) 它们分别完成对整型和实型数的加法 第五章C++基础 51C++概述 若用C++,就可以两个同名的函数 52数据和表达式 int add(int a, int b) 53基本语句 float add(float a, float b 5.4函数 它们分别完成对整型和实型数的加法.55数组与指针 作用:由于函数名相同,在函数调用时不必 考虑实参数的类型,使编程更便利
第五章 C++基础 5.1 C++概述 5.2 数据和表达式 5.3 基本语句 5.4 函数 5.5 数组与指针 函数名重载: C++的特点 问题: 设计一个函数完成两个数相加. 分析: 用C语言, 就必须设计两不同名函数: int Iadd(int a, int b); float Fadd(float a, float b); 它们分别完成对整型和实型数的加法. 若用C++, 就可以两个同名的函数: int add(int a, int b); float add(float a, float b); 它们分别完成对整型和实型数的加法. 作用: 由于函数名相同, 在函数调用时不必 考虑实参数的类型, 使编程更便利
面向对象程序设计 什么是函数重载:对同一函数进行多次定义 Wyl: #include <iostream. h> int fname(intp)/定义函数 i cout <<"one; return p*p;) 堂提要 char fname( char p)/定义函数 第五章C++基础 i cout << two return p+4; 1 void main() 51C++概述 52数据和表达式 i cout < fname(4)<< endl; / 53基本语句 cout << fname( a)<<endl; / 5.4函数 55数组与指针 结果 one 16 two
第五章 C++基础 5.1 C++概述 5.2 数据和表达式 5.3 基本语句 5.4 函数 5.5 数组与指针 什么是函数重载: 对同一函数进行多次定义 例: #include <iostream.h> int fname(int p) //定义函数 { cout << "one "; return p*p; } char fname(char p) //定义函数 { cout << " two "; return p+4; } void main( ) { cout << fname(4) << endl; // cout << fname(‘a’) << endl; // } 结果: one 16 two d
面向对象程序设计 递归函数 什么是递归 个函数直接或间接地 调用自己 堂提要 何时用递归问题可被简化,边界有界 第五章C++基础 如 Fibonacci i数列,我们有 fibo(0)=1 有边界 51C++概述 fibo (1=1 有边界 52数据和表达式 fibo(n)=fibo(n-1)+fibo(n-2) 可简化53基本语句 5.4函数 为何用递归使难以实现的编程简单化「55数组与指针
第五章 C++基础 5.1 C++概述 5.2 数据和表达式 5.3 基本语句 5.4 函数 5.5 数组与指针 递归函数 什么是递归 一个函数直接或间接地 调用自己 何时用递归 问题可被简化, 边界有界 如 Fibonacci数列,我们有: fibo(0)=1 fibo(1)=1 fibo(n)=fibo(n-1)+fibo(n-2) 有边界 有边界 可简化 为何用递归 使难以实现的编程简单化