服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - c++核心编程之函数的重载

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

2022-10-26 13:48高云城 C/C++

这篇文章主要介绍了c++核心编程之函数的重载,函数可以重复使用,提高了复用性,但前提是必须在一个作用域并且函数名称相同,下面附代码详细介绍,需要的小伙伴可以参考一下

1.函数重载概述

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

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

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

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

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

完整代码示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// 函数重载的条件
//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");
}

输出结果:

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

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

?
1
2
3
4
5
int func(int a,double c)
{
  cout << "函数int func()的调用" << endl;
  return 22;
}

输出会直接报错:

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

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

2.函数重载的注意事项

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

代码示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//函数重载的注意事项
//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++函数的重载内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.51cto.com/u_15172160/5116219

延伸 · 阅读

精彩推荐
  • C/C++C语言实现的程序员老黄历实例

    C语言实现的程序员老黄历实例

    这篇文章主要介绍了C语言实现的程序员老黄历,涉及日期的判定及流程控制的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    kevin021611602021-03-02
  • C/C++深入C语言内存区域分配(进程的各个段)详解

    深入C语言内存区域分配(进程的各个段)详解

    一般情况下,一个可执行二进制程序(更确切的说,在Linux操作系统下为一个进程单元,在UC/OSII中被称为任务)在存储(没有调入到内存运行)时拥有3个部分,...

    C语言教程网4242020-12-17
  • C/C++带你了解C++的动态内存分配

    带你了解C++的动态内存分配

    今天小编就为大家分享一篇关于关于C++动态分配内存的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来...

    右边是我女神8242021-12-16
  • C/C++c语言实现两个值互相交换的函数

    c语言实现两个值互相交换的函数

    本文通过代码给大家介绍c语言实现两个值互相交换的函数,通过实例代码给大家讲解的很详细,具有一定的参考借鉴价值,对c语言两个值互换函数相关知...

    小虾米20186322021-11-09
  • C/C++C++ STL标准库std::vector的使用详解

    C++ STL标准库std::vector的使用详解

    vector 是表示可以改变大小的数组的序列容器,本文主要介绍了C++ STL标准库std::vector的使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,...

    超级大洋葱8063792022-10-13
  • C/C++C语言与JAVA的区别是什么(推荐)

    C语言与JAVA的区别是什么(推荐)

    本文是小编给大家收集整理的关于C语言与Java的区别介绍,非常不错,具有参考借鉴价值,需要的朋友参考下吧...

    编程猫11002021-05-07
  • C/C++C++ 十进制转换为二进制的实例代码

    C++ 十进制转换为二进制的实例代码

    这篇文章介绍了C++ 十进制转换为二进制的实例代码,有需要的朋友可以参考一下...

    C++教程网5142021-01-08
  • C/C++opencv检测直线方法之形态学方法

    opencv检测直线方法之形态学方法

    这篇文章主要为大家详细介绍了opencv检测直线方法之形态学方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    恬梦12622021-07-16