第二讲 c++初步

来源:互联网 发布:姚明09年季后赛数据 编辑:程序博客网 时间:2024/05/20 14:24

函数重载

  1. 重载:一个标识符有多种含义的现象.

    • 像"<<"是位左移运算符,又是输出算符
    • 像"*"是指针运算符,又是乘法算符

    如果标识符为运算符,就叫"运算符重载"
    如果标识符为函数名,就叫"函数重载"

  2. 用处

    • 用于相类似而又不同的操作.求多个数值的最大数目,不同类型的参数,c语言需要编写不同的函数
c语言int max1(int a, int b, int c);float max2(float a, float b, float c);long max3(long a, long b, long c);

c++: 将这三个函数取相同的名字,程序运行时,系统会根据实际参数的不同,调用相近参数的函数(即:允许在统一作用域中用同一函数名定义多个函数,函数的参数类型和个数不同,这些同名函数实现不同功能--函数重载)
不能出现函数名,参数个数,类型完全一致的函数.


函数模板

  1. 函数模板:c++函数重载允许同一函数名定义多个函数,但是还要定义每一个函数,对于有些相同功能函数,如果函数参数个数相同,可以用函数模板.
    • 函数模板是定义一个通用函数,其函数类型和形参类型不确定,用虚拟类型代表.利用函数模板定义的函数叫做模板函数.
template <typename T>//template <class 类型参数>//<类型> <函数名> (<参数表>)T max (T a, T b, T c){    if(a>b)    return a;    else     return b;}

template

有默认参数的函数

背景:一般情况下,函数调用时,形参从实参取值,要求实参的个数和类型与形参相同,但是有时多次调用同一个函数时用的同一实参数,或者调用时还不好确定实参数.
c++: 若不提供实参数,形参就用默认参数作为实参值.

float area(float r=6.5)
area(); //同是area(6.5);

注意
1. 当有多个参数时,如果只有部分参数有默认值,则指定默认值的参数必须放在参数表的最右边,否则出错.
2. 因为实参与形参的结合是从左至右边顺序进行的,第一个实参必须给第一个形参.
3. 一个函数不能即作为重载函数,又作为默认参数函数,因为当调用函数时候如果少写一实参,系统无法判断是利用重载函数还是利用默认参数函数.但是模板函数和默认参数函数可以.

变量的引用

  1. 引用:变量的引用就是变量的别名.建立引用的作用,就是为一个变量另取一个名字,以便在需要的时候简介地起到引用该变量.
  2. > int &b=a;
  3. 声明了一个整型变量的引用变量,并且被初始化为a.
  4. & 为"引用声明符号".对于一个变量声明一个引用,并不另开辟内存空间,代表同一个变量.
  5. 引用的不是独立变量,编译系统不给他分配存储单元,建立引用只有声明,没有定义,只是声明和某一个变量的关系.
  6. 声明一个变量的引用后,该引用不能再次声明
  7. > int &x; //错误,没有指定是哪个变量
  8. 主要用来作为函数参数,以弥补函数传递参数的不方便.