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++函数的重载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++线程优先级SetThreadPriority的使用实例

    C++线程优先级SetThreadPriority的使用实例

    这篇文章主要介绍了C++线程优先级SetThreadPriority的使用实例,较为详细的讲述了C++线程及其优先级的用法,需要的朋友可以参考下
    2014-10-10
  • opencv实现图像倾斜校正

    opencv实现图像倾斜校正

    这篇文章主要为大家详细介绍了opencv实现图像倾斜校正,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • C语言数据的存储超详细讲解上篇

    C语言数据的存储超详细讲解上篇

    使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。您可能需要存储各种数据类型的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么
    2022-04-04
  • c语言_构建一个静态二叉树实现方法

    c语言_构建一个静态二叉树实现方法

    下面小编就为大家带来一篇c语言_构建一个静态二叉树实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • C语言如何实现头插法建立单链表

    C语言如何实现头插法建立单链表

    这篇文章主要介绍了C语言实现头插法建立单链表的方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 深入了解C++中基于模板的类型擦除

    深入了解C++中基于模板的类型擦除

    在C\C++中主要有三种类型擦除的方式:基于void*的类型擦除、面向对象的类型擦除和基于模板的类型擦除,本文主要为大家详细介绍基于模板的类型擦除的相关知识,需要的可以了解下
    2023-12-12
  • C语言数据结构不挂科指南之栈&队列&数组详解

    C语言数据结构不挂科指南之栈&队列&数组详解

    自考重点、期末考试必过指南,这篇文章让你理解什么是栈、什么是队列、什么是数组。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-09-09
  • OpenCV c++滑动条的创建和使用代码

    OpenCV c++滑动条的创建和使用代码

    滚动条(Trackbar)在OpenCV中是非常方便的交互工具,它依附于特定的窗口而存在,下面这篇文章主要给大家介绍了关于OpenCV c++滑动条的创建和使用的相关资料,需要的朋友可以参考下
    2023-06-06
  • C++简明分析inline函数的使用

    C++简明分析inline函数的使用

    inline是C++关键字,在函数声明或定义中,函数返回类型前加上关键字inline,即可以把函数指定为内联函数。这样可以解决一些频繁调用的函数大量消耗栈空间(栈内存)的问题
    2022-07-07
  • C++的头文件和实现文件详解

    C++的头文件和实现文件详解

    这篇文章主要介绍了C++的头文件和实现文件详解的相关资料,需要的朋友可以参考下
    2015-01-01

最新评论