我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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++语言中函数重载功能怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

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

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

C++中怎么通过C语言实现函数重载

这篇文章给大家介绍C++中怎么通过C语言实现函数重载,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++函数重载的相关模拟代码:int (*func)(void); int func1(void) { int
2023-06-17

c语言怎么实现函数重载

在C语言中,没有直接支持函数重载的特性。函数重载是一个面向对象编程语言(如C++)提供的特性,它允许定义名称相同但参数列表不同的多个函数。在C语言中,可以通过以下方式模拟函数重载:1. 使用不同的函数名:为不同的功能使用不同的函数名,例如`
2023-10-25

c++中什么函数不能重载

在 c++ 中,以下类型的函数不能重载:1. 构造函数和析构函数;2. 友元函数;3. 运算符函数;4. 强制类型转换函数。原因是这些函数具有特殊的语义和语法规则,重载可能会导致歧义和错误。C++ 中不能重载的函数在 C++ 中,以下类型
c++中什么函数不能重载
2024-04-22

C语言中函数怎么用

这篇文章主要为大家展示了“C语言中函数怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中函数怎么用”这篇文章吧。函数函数定义百度百科对函数的定义:子程序在计算机科学中,子程序是一个大型
2023-06-25

c语言fun函数的功能是什么

C语言中的fun函数是一个自定义的函数,其功能根据函数的具体实现而定。fun函数可以用来完成各种任务,例如进行数学运算、字符串操作、数组处理等。具体来说,fun函数的功能可以是:执行数学运算:可以实现加减乘除、取余、幂运算等数学运算操作。
2023-10-23

c语言feof函数的功能是什么

feof函数的功能是检测文件流的结束标志。在C语言中,文件流通常通过FILE结构体表示,feof函数用于判断文件流是否已到达文件末尾。具体而言,feof函数接受一个文件流指针作为参数,如果文件流已到达文件末尾,则返回非零值(即true),否
2023-10-10

C++编程语言中赋值运算符重载函数怎么使用

本文小编为大家详细介绍“C++编程语言中赋值运算符重载函数怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++编程语言中赋值运算符重载函数怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1 概述1
2023-07-02

C语言中sizeof函数怎么用

这篇文章给大家分享的是有关C语言中sizeof函数怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.sizeof 函数简介在 C 语言中,char 字符串也是一种非常重要的数据类型,我们除了使用 sizeo
2023-06-25

c语言中strlen函数怎么用

strlen 函数用于确定给定字符串的长度,使用方法如下:包含 string.h 头文件声明指向给定字符串的常量字符指针调用 strlen 函数,将字符指针作为参数传递将函数的返回值存储在 size_t 类型的变量中如何使用 C 语言中的
c语言中strlen函数怎么用
2024-05-08

c语言中parse函数怎么用

parse 函数解析字符串,将其转换为由分隔符分隔的令牌列表。步骤:1. 从字符串开头搜索第一个非分隔符字符;2. 继续搜索直到遇到分隔符,并在该分隔符处终止字符串;3. 将令牌存储在令牌数组中;4. 重复 1-3 步,直至字符串结束;5.
c语言中parse函数怎么用
2024-04-28

c语言中isalpha函数怎么用

在C语言中,isalpha函数用于检查一个字符是否为字母。该函数的原型为:#include int isalpha(int c);isalpha函数接受一个字符作为参数,返回一个非零值(真)表示该字符是一个字母,返回0(假)表示不是字
2023-10-23

c语言中fseek函数怎么用

fseek 函数用于在文件流中设置文件指针位置,其语法为 fseek(file *stream, long int offset, int whence)。根据 whence 参数,offset 相对于文件开头 (seek_set)、当前位
c语言中fseek函数怎么用
2024-05-08

c语言中sign函数怎么用

c 语言中的 sign 函数用于获取浮点值符号,返回整数表示正、负或零。语法:sign(double x),参数为浮点值 x。返回值:x 大于 0 返回 1,小于 0 返回 -1,等于 0 返回 0。C 语言中 sign 函数的使用什么是
c语言中sign函数怎么用
2024-04-13

C++中怎么进行函数重载

今天就跟大家聊聊有关C++中怎么进行函数重载,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。函数重载要求编译器能够***地确定调用一个函数时应执行哪个函数代码,即采用哪个函数实现。确定
2023-06-17

c语言中有多个重载函数如何解决

在C语言中没有重载函数的概念,因此无法直接解决有多个重载函数的问题。重载函数是C++语言的特性,它允许在同一作用域内定义多个同名函数,但它们的参数类型或个数不同。如果在C语言中需要实现类似重载函数的功能,可以通过使用不同的函数名来区分不同
2023-10-25

c语言中fun函数怎么调用

调用 c 语言中的 fun 函数涉及以下步骤:声明 fun 函数:告知编译器函数名称、参数和返回值类型。定义 fun 函数:提供函数的实现,包括函数头和函数体。调用 fun 函数:使用函数调用语句,传递参数并接收返回值。例如,在代码中声明
c语言中fun函数怎么调用
2024-05-10

c语言中seek函数怎么调用

在C语言中,seek函数用于设置文件指针的位置。其调用方式如下:```c#include int fseek(FILE *stream, long offset, int origin);```其中,stream是指向文件的指针;offse
2023-09-14

C语言中exit()函数怎么使用

在C语言中,exit()函数用于终止程序运行并返回退出状态码。它的使用方法如下:1. 在程序中包含stdlib.h头文件:`#include `2. 使用exit()函数来终止程序,并指定退出状态码(整数值)。一般来说,0表示程序正常退出,
2023-09-14

c语言中ln函数怎么使用

ln 函数用于计算自然对数(以 e 为底)。使用方法:1. 包含 头文件;2. 声明 double 型变量存储结果;3. 调用 ln 函数并传递正实数 x;4. 将结果存储在声明的变量中。示例代码:#include int main()
c语言中ln函数怎么使用
2024-05-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录