C语言 百分网手机站

C/C++函数重载与缺省参数

时间:2020-09-09 19:40:17 C语言 我要投稿

C/C++函数重载与缺省参数

  C语言是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。下面是小编分享的C/C++函数重载与缺省参数,一起来看一下吧。

  函数重载

  函数多态是C++在C语言的基础上新增的功能,默认参数让你能够使用不同数目的参数调用同一个函数,而函数多态(函数重载)让你能够使用多个同名的函数。“多态”指的是有多种形式因此函数多态允许函数可以有多种形式,类似的术语“函数重载”指的是可以有多个同名的函数,因此对名称进行了重载,它们两个看起来是同一回事,但我们会通常使用函数重载,可以通过函数重载来设计一系列的函数,它们完成相同的工作,但使用不同的参数列表。

  重载函数就像是有多钟含义的动词。函数重载的关键是函数的参数列表(也称为函数特征标【function 、signature】)。如果两个函数的参数数目和类型相同,同时参数的排列顺序也相同,则它们的特征标相同,而变量名是无关紧要的。C++允许定义名称相同的函数,条件是它们的特征标不同,如果参数数目和/或参数类型不同,则特征标也不同。

  我们从代码里面看下:

  ////C C++

  ////c语言:面向过程的语言,严格的先后顺序,便于理解

  ////c++语言:面向对象的语言,先后顺序没有那么严格

  //

  ////C++是C的升级

  ////C++比C语言多了两个关键的.知识,1、类和对象;2、模板

  //

  ////函数重载

  ////对于相同(相似)的函数行为,用一个函数名进行管理

  ////一个函数名管理多个函数体

  ////构成函数重载的条件:函数名必须一致,参数列表不一致

  ////参数列表不一致:1、参数列表的个数不一致;2、参数对应位置的类型不一致

  //

  //struct MyPoint

  //{

  // int row, col;

  //};

  //

  ////int MyDev(int a, int b)

  ////{

  //// return a / b;

  ////}

  ////

  ////char MyDev(int c, int d)

  ////{

  //// return c / d;

  ////}

  //

  //int MyMul(int a, char c)

  //{

  // return a * c;

  //}

  //

  //int MyMul(char c, int a)

  //{

  // return a * c;

  //}

  //

  //int myAdd(int a, int b, int c)

  //{

  // return a + b + c;

  //}

  //

  //int myAdd(int a, int b)

  //{

  // return a + b;

  //}

  //

  //double myAdd(double a, double b)

  //{

  // return a + b;

  //}

  //

  //MyPoint myAdd(MyPoint a, MyPoint b)

  //{

  // MyPoint tempPos;

  // tempPos.row = a.row + b.row;

  // tempPos.col = a.col + b.col;

  // return tempPos;

  //}

  //

  //void main()

  //{

  // printf("%f ",myAdd(1.3,2.89));

  // printf("%d ", myAdd(1, 2));

  //

  //}

  //函数的缺省参数

  //在函数定义的时候,给形参给出初始值。

  //当函数调用时,就可以不用再给实参,默认使用初始值

  //函数调用给出实参,会用实参去替换掉默认的初始值

  //缺省参数只能由后往前缺省

  //缺省参数和函数重载组合会产生二义性

  //缺省参数声明和定义分开

  int myMul(int a = 1, int b = 4);

  //int MyAdd(int a, int b)

  //{

  // return a + b;

  //}

  //

  //int MyAdd(int a, int b, int c = 1)

  //{

  // return a + b + c;

  //}

  void mySwap(int a, int b)

  {

  int c = a;

  a = b;

  b = c;

  }

  void main()

  {

  int num1 = 10;

  int num2 = 20;//两个变量是通过一段流程语句来的

  //printf("%d ", MyAdd(num1, num2));

  //printf("%d ", MyAdd());

  mySwap(num1, num2);

  printf("num1 = %d num2 = %d ", num1, num2);

  }

  int myMul(int a, int b)

  {

  return a * b;

  }

【C/C++函数重载与缺省参数】相关文章:

C语言函数调用与参数传递02-01

C++调用C函数的方法09-28

C++中可以接受任意多个参数的函数定义方法10-05

C语言函数参数传递规律10-02

C语言函数参数传递问题10-01

C++函数指针学习教程10-03

C++如何调用matlab函数09-29

C++中内联函数的应用09-22

Java程序调用C/C++语言函数的方法09-24

C语言函数的参数和返回值10-05