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

 更新时间:2022年03月21日 14:32:38   作者:高云城  
这篇文章主要介绍了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++函数的重载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vscode调试gstreamer源码的详细流程

    vscode调试gstreamer源码的详细流程

    在本文中主要介绍了如何使用vscode调试C++和python程序,并进一步分析了如何调试gstreamer源码,讲述了如何调试gstreamer源码的具体流程,感兴趣的朋友跟随小编一起看看吧
    2023-01-01
  • C语言从基础到进阶全面讲解数组

    C语言从基础到进阶全面讲解数组

    数组是一组有序的数据的集合,数组中元素类型相同,由数组名和下标唯一地确定,数组中数据不仅数据类型相同,而且在计算机内存里连续存放,地址编号最低的存储单元存放数组的起始元素,地址编号最高的存储单元存放数组的最后一个元素
    2022-05-05
  • 利用Matlab绘制有趣图像的示例代码

    利用Matlab绘制有趣图像的示例代码

    这篇文章主要为大家总结了一些利用Matlab绘制的有趣好看的图像的示例代码。文中的示例代码简洁易懂,感兴趣的小伙伴可以动手试一试
    2022-03-03
  • C++入门笔记之std::vector容器详解

    C++入门笔记之std::vector容器详解

    这篇文章主要给大家介绍了关于C++之std::vector容器的相关资料,vector,一种随机访问的数组类型,它提供了对数组元素的快速、随机访问,以及在序列尾部快速、随机的插入和删除操作,需要的朋友可以参考下
    2021-07-07
  • C语言通讯录实例分享

    C语言通讯录实例分享

    这篇文章主要为大家分享了C语言通讯录实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • C和C++中argc和argv的含义及用法详解

    C和C++中argc和argv的含义及用法详解

    argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,这篇文章主要介绍了C和C++中argc和argv的含义以及用法,需要的朋友可以参考下
    2022-11-11
  • 用C++面向对象的方式动态加载so的方法

    用C++面向对象的方式动态加载so的方法

    下面小编就为大家带来一篇用C++面向对象的方式动态加载so的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 马尔可夫链算法(markov算法)的awk、C++、C语言实现代码

    马尔可夫链算法(markov算法)的awk、C++、C语言实现代码

    这篇文章主要介绍了马尔可夫链算法(markov算法)的awk、C++、C语言实现代码,需要的朋友可以参考下
    2014-08-08
  • 《C++ primer plus》读书笔记(三)

    《C++ primer plus》读书笔记(三)

    本文是C++读书笔记系列的第三篇,是读完《C++ primer plus》一书第九、十两章记录下来的笔记,学习C++的同学可以看看参考下。
    2014-10-10
  • C语言单链表实现方法详解

    C语言单链表实现方法详解

    这篇文章主要介绍了C语言单链表实现方法,结合实例形式分析了基于C语言的单链表定义、创建、添加、删除、排序、打印等操作技巧,并附带了相关的优化算法,需要的朋友可以参考下
    2018-04-04

最新评论