广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C/C++语言中函数重载功能怎么用
  • 498
分享到

C/C++语言中函数重载功能怎么用

2023-06-03 09:06:23 498人浏览 泡泡鱼
摘要

小编给大家分享一下C/C++语言中函数重载功能怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!“函数重载”指的是可以有多个同名的函数,因此 名称进行了重载。这

小编给大家分享一下C/C++语言中函数重载功能怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

“函数重载”指的是可以有多个同名的函数,因此 名称进行了重载。这两个术语指的是同一回事,但我们通常使用函数重载。可以通过函数重载来设计• 系列函数——它们完成相同的工作,但使用不同的参数列表。

重载函数就像是有多种含义的动词。例如,Piggy小姐可以在棒球场为家乡球队助威(root),也可以在地里种植(root)菌类作物。根据上下文可以知道在每一种情况下,root的含义是什么。同样,c++使用上下文来确定要使用的重载函数版本。

函数重载的关键是函数的参数列表——也称为函数特征标(ftmction signature).如果两个函数的参数数目和类型相同,同时参数的排列顺序也相同,则它们的特征标相同,而变量名是无关紧要的。C++允定义名称相同的函数,条件是它们的特征标不同。如果参数数目和/或参数类型不同,则特征标也不同。例如,可以定义一组原型如下的print()函数:

Void print(const char * str, int width) ; // #1Void print(double d, int width);   // #2Void print(long 1, int width);    // #3 Void print(int i, int width);     // #4 frombyteVoid print(const char *str);     // #5

使用pnnt()函数时,编译器将根据所采取的用法使用有相应特征标的原型:

print(” Pancakes", 15);   //use #1print(” syrup");    //use #2print(” 1999.0,10");    //use #3print(” 1999,12");    //use #4print(” 1999L,15");    //use #5 frombyte.com

例如,print(“Pancakes”,15)使用一个字符串和一个整数作为参数,这与#1原型匹配。 ,使用被重载的函数时,需要在函数调用中使用正确的参数类型。例如,对于下面的语句:

Unsigned int year =3210;print (year, 6);   // ambiguous call

Print()调用与哪个原型匹配呢?它不与任阿原型匹配!没有匹配的圆形并不会自动停止使用其中的某个函数,因为C++将尝试使用标准类型转换强制进行匹配。如果#2原型是print()唯一的原型,则函数调用print(year,6)将把year转换为double类型。但在上面的代码中,有3个将数字作为第一个参数的原型,因此有3种转换year的方式。在这种情况下,C++将拒绝这种函数调用,并将其视为错误。

一些看起来彼此不同的特征标是不能共存的。例如,请看下面的两个原型:

duble cube (double x);duble cube (double & x);

您可能认为可以在此处使用函数重载,因为它们的特征标看起来不同。然而,请从编译器的角度来考虑这个问题。假设有下面这样的代码:

cout.<< cube(x);

参数X与double x原型和double &x原型都匹配,因此编译器无法确定究竟应使用哪个原型。为避免这种混乱,编译器在检査函数特征标时,将把类型引用和类型本身视为同一个特征标。 匹配函数时,并不区分const和非const变量。请看下面的原型:

Void dribble(char * bits);Void dribble (const char *cbits);Void dabble(char * bits);Void drivel(const char * bits);

下面列出了各种函数调用对应的原型:

Const char p1[20]="How’s the weather?";Char p2[20]="How's business?";Dribble(p1);  // dribble(const char *); Dribble(p2);  // dribble(char *);Dabble(p1);  // no match Dabble(p2);  // dabble(char *);Drivel(p1);  // drivel(const char *);frombyte.com Drivel(p2);  // drivel(const char *);

dribble()函数有两个原型,一个用于const指针,另一个用于常规指针,编译器将根据实参是否为const来决定使用哪个原型。dribble()函数只与带非const参数的调用匹配,而drivel()函数可以与带const或非const参数的调用匹配。drivel◦和dabble()之所以在行为上有这种差别,主要是由于将非const值赋给const变量是合法的,但反之则是非法的。

请记住,是特征标,而不是函数类型使得可以对函数进行重载。例如,下面的两个声明是互斥的:

long gronk(int n, float m); // same signatures,double gronk(int n, float m); // hence not allowed

因此,C++不允许以这种方式重载gronk()。返回类型可以不同,但特征标也必须不同:

long gronk(int n; float m); // different signatures,double gronk(float n# float m); // hence allowed

以上是“C/C++语言中函数重载功能怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网其他教程频道!

--结束END--

本文标题: C/C++语言中函数重载功能怎么用

本文链接: https://www.lsjlt.com/news/233911.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C/C++语言中函数重载功能怎么用
    小编给大家分享一下C/C++语言中函数重载功能怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!“函数重载”指的是可以有多个同名的函数,因此 名称进行了重载。这...
    99+
    2023-06-03
  • C++中怎么通过C语言实现函数重载
    这篇文章给大家介绍C++中怎么通过C语言实现函数重载,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++函数重载的相关模拟代码:int (*func)(void);   int&...
    99+
    2023-06-17
  • c语言怎么实现函数重载
    在C语言中,没有直接支持函数重载的特性。函数重载是一个面向对象编程语言(如C++)提供的特性,它允许定义名称相同但参数列表不同的多个...
    99+
    2023-10-25
    c语言
  • C语言中函数怎么用
    这篇文章主要为大家展示了“C语言中函数怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中函数怎么用”这篇文章吧。函数函数定义百度百科对函数的定义:子程序在计算机科学中,子程序是一个大型...
    99+
    2023-06-25
  • c语言fun函数的功能是什么
    C语言中的fun函数是一个自定义的函数,其功能根据函数的具体实现而定。fun函数可以用来完成各种任务,例如进行数学运算、字符串操作、...
    99+
    2023-10-23
    c语言
  • c语言feof函数的功能是什么
    feof函数的功能是检测文件流的结束标志。在C语言中,文件流通常通过FILE结构体表示,feof函数用于判断文件流是否已到达文件末尾...
    99+
    2023-10-10
    c语言
  • C++编程语言中赋值运算符重载函数怎么使用
    本文小编为大家详细介绍“C++编程语言中赋值运算符重载函数怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++编程语言中赋值运算符重载函数怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1 概述1...
    99+
    2023-07-02
  • c语言中isalpha函数怎么用
    在C语言中,isalpha函数用于检查一个字符是否为字母。该函数的原型为: #include int isalpha(int c)...
    99+
    2023-10-23
    c语言
  • C语言中sizeof函数怎么用
    这篇文章给大家分享的是有关C语言中sizeof函数怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.sizeof 函数简介在 C 语言中,char 字符串也是一种非常重要的数据类型,我们除了使用 sizeo...
    99+
    2023-06-25
  • c语言中有多个重载函数如何解决
    在C语言中没有重载函数的概念,因此无法直接解决有多个重载函数的问题。重载函数是C++语言的特性,它允许在同一作用域内定义多个同名函数...
    99+
    2023-10-25
    c语言
  • C++中怎么进行函数重载
    今天就跟大家聊聊有关C++中怎么进行函数重载,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。函数重载要求编译器能够***地确定调用一个函数时应执行哪个函数代码,即采用哪个函数实现。确定...
    99+
    2023-06-17
  • C语言PlaySound函数怎么用
    这篇文章主要为大家展示了“C语言PlaySound函数怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言PlaySound函数怎么用”这篇文章吧。1用法PlaySound是windows...
    99+
    2023-06-21
  • c语言fun函数的功能有哪些
    C语言中的fun函数是一个自定义函数,其功能可以根据具体的代码实现而定。以下是一些常见的fun函数的功能: 计算数学运算:可以实...
    99+
    2023-10-24
    c语言
  • c语言中fabs函数怎么使用
    在C语言中,fabs函数用于计算浮点数的绝对值。它的函数原型如下:cdouble fabs(double x);fabs函数接受一个...
    99+
    2023-10-20
    c语言
  • c语言中fwrite函数怎么使用
    在C语言中,`fwrite`函数用于将指定数量的数据块写入到文件中。函数原型如下:```size_t fwrite(const vo...
    99+
    2023-09-05
    c语言
  • 怎么使用c语言中fgetc函数
    本篇内容主要讲解“怎么使用c语言中fgetc函数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用c语言中fgetc函数”吧!fgetc函数返回的字符实际上是文件流中位置指针指向的字符。当f...
    99+
    2023-06-25
  • c语言中seek函数怎么调用
    在C语言中,seek函数用于设置文件指针的位置。其调用方式如下:```c#include int fseek(FILE *strea...
    99+
    2023-09-14
    c语言
  • C语言中exit()函数怎么使用
    在C语言中,exit()函数用于终止程序运行并返回退出状态码。它的使用方法如下:1. 在程序中包含stdlib.h头文件:`#inc...
    99+
    2023-09-14
    C语言
  • c语言socket函数怎么调用
    在C语言中,我们可以使用头文件和来调用socket函数。首先需要创建一个socket,使用socket函数来创建一个套接字。函数原型...
    99+
    2023-10-12
    c语言
  • c语言str函数怎么使用
    在C语言中,str函数是用于在一个字符串中查找子字符串的函数。str函数的原型如下:cchar* str(char* str1, c...
    99+
    2023-10-18
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作