欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

c++核心编程之函数的重载

时间:2023-01-03 08:29:59|栏目:C代码|点击:

1.函数重载概述

?作用?:函数可以相同,提高复用性

?函数重载必须满足的条件?:

  • 1?.同一个作用域下?
  • 2.?函数名称相同?
  • 3.函数?参数类型不同?或者?个数不同?或者?顺序不同?

?注意?:函数的返回值不可以作为函数重载的条件

完整代码示例:

// 函数重载的条件
//1,在同一个作用域中
//2,相同的返回值类型和函数名
//3,函数的参数个数不同或者参数顺序不同或者参数类型不同
void cunc()
{
  cout << "func()函数的重载" << endl;
}

void func(int a)
{
  cout << "func(int a)函数的重载" << endl;
}

void fuc(double c)
{
  cout << "func(doube c )的调用" << endl;
}

void func(int a,double c)
{
  cout << "func(int a,double c)函数的调用" << endl;
}
 
//函数的返回值类型不能作为函数的重载
//int func(int a,double c)
//{
//  cout << "函数int func()的调用" << endl;
//  return 22;
//}

int main()
{
  //func(3.33);
  //func(10,3.11);
  //func(210, 20);
  //func(10,20);
  system("pause");
}

输出结果:

?注意:函数的返回值类型不能作为函数的重载?

int func(int a,double c)
{
  cout << "函数int func()的调用" << endl;
  return 22;
}

输出会直接报错:

?总结?:??函数的重载类似与汉语中的多音字,在不同的环境读不同的音,用不同的参数环境调用不同的功能??

2.函数重载的注意事项

  • 引用做为重载条件
  • 函数重载碰到函数默认参数

代码示例:

//函数重载的注意事项
//1、引用作为函数参数
void func(int &a)
{
  cout << "函数function(int a)的调用" << endl; 
}

void func(const int& a)
{
  cout << "函数function(const int a)的调用" << endl;
}

//2、函数重载碰到默认参数
void test(int a)
{
  cout << "函数test(int a)的调用" << endl;
}

void test(int a,int b=10)
{
  cout << "函数test(int a,int b)的调用" << endl;
}

int main()
{
  //int a = 10;
  //func(a);//实际参数a变量可读可写,传入函数后走可读可写的函数
  //func(10);//实际参数10是常量 若走int &a=10;不合法,引用无效;但能走const int &a=10;

  test(10, 20);
  //test(10);//错误,两个函数都能被调用。出现二义性。

  system("pause");
}

上一篇:C语言中数据是如何存储在内存中的

栏    目:C代码

下一篇:C++运算符重载限制介绍

本文标题:c++核心编程之函数的重载

本文地址:http://www.codeinn.net/misctech/222833.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有