函数重载的简单例子(什么叫函数重载)

:暂无数据 2026-08-27 02:20:01 :1

函数重载的简单例子(什么叫函数重载)

今天给各位分享什么叫函数重载的知识,其中也会对什么叫函数重载进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录

什么叫函数重载

函数重载是一个同名函数完成不同的功能,编译系统在编译阶段通过函数参数个数、参数类型不同,函数的返回值来区分该调用哪一个函数,即实现的是静态的多态性。但是记住:不能仅仅通过函数返回值不同来实现函数重载。

扩展资料

重载函数的多义性无法确定,直到遇到函数调用。 此时,将为函数调用中的每个参数生成集,并且可以确定是否存在明确的重载。 这意味着,多义性可保持在您的代码中,直到它们由特定函数调用引发。

参数类型差异

重载函数区分使用不同的初始值设定项的参数类型。 因此,对于重载而言,给定类型的参数和对该类型的引用将视为相同。 由于它们采用相同的初始值设定项,因此它们被视为是相同的。 例如,max( double, double ) 被视为与 max( double &, double & ) 相同。 声明两个此类函数会导致错误。

出于同一原因,对由 const 或 volatile 修改的类型的函数参数(出于重载的目的)的处理方式与基类没有什么不同。

但是,函数重载机制可以区分由 const 和 volatile 限定的引用和对基类型的引用。

写个重载->的例子

#include 《iostream》
using namespace std;
struct node{
int d;
node(int d): d(d){}
};
class A{
node *n;
public:
A(): n(new node(123)){}
node *operator -》(){
return n;
}
};
int main(){
A a;
cout 《《 a-》d 《《 endl;
}

将打印 123

这例子不仅体现了operator -》的重载,同时也体现了指针的危险,破坏了封装性。n是A的私有成员,但有了指针后仍然可以访问。

请举一个构造函数重载的例子给我看看

public AppMain()
{
InitializeComponent();
}
上面这个是普通的构造
下面这个是带参数的重载构造
public AppMain(string str)
{
InitializeComponent();
}

C++中输入输出流运算符重载求个具体的例子,尽量简单点儿新手

 
class Point 
{ 
private: 
       int x;
public: 
       Point(int x1)
       {    x=x1;}
       friend ostream& operator《《(ostream& cout,const Point& p);//使用友元函数重载《《输出运算符
       friend istream& operator》》(istream& cin,Point& p);//使用友元函数重载》》输出运算符
}; 
ostream& operator《《(ostream& cout,const Point& p)
{
       cout《《p.x《《endl;
       return cout;
}
istream& operator》》(istream& cin,Point& p)
{
       cin》》p.x;
       return cin;
}
 
调用: 
 void main()
{
Point a(1); 
Point b(2); 
cin》》a》》b; 
cout《《a《《b《《endl;
}

什么是重载函数举例说明

所谓函数重载是指同一个函数名可以对应着多个函数的实现。例如,可以给函数名add()定义多个函数实现,该函数的功能是求和,即求两个操作数的和。其中,一个函数实现是求两个int型数之和,另一个实现是求两个浮点型数之和,再一个实现是求两个复数的和。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。这就是函数重载的概念。函数重载在类和对象的应用尤其重要。
函数重载要求编译器能够唯一地确定调用一个函数时应执行哪个函数代码,即采用哪个函数实现。确定函数实现时,要求从函数参数的个数和类型上来区分。这就是说,进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。否则,将无法实现重载。
参数类型上不同的重载函数
下面举一个在参数类型不同的重载函数的例子:
#include 《iostream.h》
int add(int, int);
double add(double, double);
void main()
{
cout《《add(5, 10)《《endl;
cout《《add(5.0, 10.5)endl;
}
int add(int x, int y)
{
return x+y;
}
double add(double a, double b)
{
return a+b;
}
该程序中,main()函数中调用相同名字add的两个函数,前边一个add()函数对应的是两个int型数求和的函数实现,而后边一个add()函数对应的是两个double型数求和的函数实现。这便是函数的重载。
以上程序输出结果为:
15
15.5
参数个数上不同的重载函数
下面举一个在参数个数上不相同的重载函数的例子:
#include 《iostream.h》
int min(int a, int b);
int min(int a, int b, int c);
int min(int a, int b, int c, int d);
void main()
{
cout《《min(13, 5, 4, 9)《《endl;
cout《《min(-2, 8, 0)《《endl;
}
int min(int a, int b)
{
return a《b?a:b;
}
int min(int a, int b, int c)
{
int t = min(a, b);
return min(t,c);
}
int min(int a, int b, int c, int d)
{
int t1 = min(a, b);
int t2 = min(c, d);
return min(t1, t2);
}
该程序中出现了函数重载,函数名min对应有三个不同的实现,函数的区分依据参数个数不同,这里的三个函数实现中,参数个数分别为2,3和4,在调用函数时根据实参的个数来选取不同的函数实现。

C++中函数重载是什么,能举个例子说明是如何重载的吗

函数重载:

C++允许定义多个同名函数,但是参数不能相同,必须满足以下条件之一

1,参数类型不同

2,参数数量不同              比如:

int fun(int,int);
int fun(long,int);             //类型不同
int fun(int);                  //数量不同

这样三个函数实现了重载,编译器会认为是三个不同的函数

PS:返回值类型不同,参数相同,是不能重载的

C++中是如何实现函数重载的

函数重载,简单来说 就是一个函数名称,但是有多个函数定义,它们是通过函数参数来区分的,
比如
int A() { } // 函数定义1
int A(int p) { } // 函数定义2,参数 和 定义1不一样,视为重载

实际上,C++ 的函数重载比较复杂,因为这涉及到了 C++ 隐晦的类型 转换问题,深入之后自然会碰到(不过也不必担心,通常不会碰到这个问题,除非应聘工作时哪些主考官们可能会考考这类问题)。
至于 C++ 编译器怎么实现函数重载的,这主要通过 一种 叫 Name-mangling 的技术,这种技术在编译器编译函数时,根据函数参数、参数类型 参数个数 等信息, 悄悄地改写函数名字,当然改写后的名字是供编译器使用的,程序员往往不可见的。
如果你不需要在 C++中使用 Name-mangling 技术,必须 在 函数 前面 加上 extern "C" , 表示不使用 Name-mangling 技术,这也就是 为什么 前面有 extern "C" 声明的
函数 不能重载的原因
extern "C" int A() { }
extern "C" int A(int p) { } //编译错误,

以上就是我们为大家找到的有关“函数重载的简单例子(什么叫函数重载)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。

函数重载的简单例子(什么叫函数重载)

本文编辑:admin

本文相关文章:


python递归法求n的阶乘(利用python函数计算n的阶层)

python递归法求n的阶乘(利用python函数计算n的阶层)

这篇文章给大家聊聊关于python递归法求n的阶乘,以及利用python函数计算n的阶层对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月4日 03:20

函数有几种呢?matlab sort 函数

函数有几种呢?matlab sort 函数

大家好,函数相信很多的网友都不是很明白,包括函数有几种呢也是一样,不过没有关系,接下来就来为大家分享关于函数和函数有几种呢的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

2026年9月28日 04:00

round函数整列使用(如何在整个EXCEL表格中,所有的单元格都添加ROUND函数)

round函数整列使用(如何在整个EXCEL表格中,所有的单元格都添加ROUND函数)

大家好,round函数整列使用相信很多的网友都不是很明白,包括如何在整个EXCEL表格中,所有的单元格都添加ROUND函数也是一样,不过没有关系,接下来就来为大家分享关于round函数整列使用和如何在整个EXCEL表格中,所有的单元格都添加

2026年9月21日 05:30

绝对值函数的最小值怎么求(带绝对值函数的定积分,求最小值)

绝对值函数的最小值怎么求(带绝对值函数的定积分,求最小值)

大家好,今天小编来为大家解答以下的问题,关于绝对值函数的最小值怎么求,带绝对值函数的定积分,求最小值这个很多人还不知道,现在让我们一起来看看吧!

2026年9月10日 15:10

print函数用法python(print函数的用法)

print函数用法python(print函数的用法)

“print函数用法python”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看print函数用法python(print函数的用法)!

2026年8月29日 08:20

textmode什么意思(fabs函数是什么意思)

textmode什么意思(fabs函数是什么意思)

这篇文章给大家聊聊关于textmode什么意思,以及fabs函数是什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年8月21日 17:40

两个if函数怎么用(excel连续用两个if函数怎么用.最好能用几个,要具体步骤,)

两个if函数怎么用(excel连续用两个if函数怎么用.最好能用几个,要具体步骤,)

各位老铁们好,相信很多人对两个if函数怎么用都不是特别的了解,因此呢,今天就来为大家分享下关于两个if函数怎么用以及excel连续用两个if函数怎么用.最好能用几个,要具体步骤,的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看

2026年8月9日 14:10

结构体怎么用sort排序(sort函数结构体排序的问题)

结构体怎么用sort排序(sort函数结构体排序的问题)

各位老铁们,大家好,今天由我来为大家分享结构体怎么用sort排序,以及sort函数结构体排序的问题的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年8月9日 11:20

函数ucase (mid(〃vb“,8.8))的值为?vb ucase(“A”)输出结果

函数ucase (mid(〃vb“,8.8))的值为?vb ucase(“A”)输出结果

各位老铁们,大家好,今天由我来为大家分享ucase,以及函数ucase (mid(〃vb“,8.8))的值为的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年7月14日 10:20

small函数相反的函数(small 是什么函数)

small函数相反的函数(small 是什么函数)

大家好,small函数相反的函数相信很多的网友都不是很明白,包括small 是什么函数也是一样,不过没有关系,接下来就来为大家分享关于small函数相反的函数和small 是什么函数的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我

2026年6月29日 06:20

更多文章:


withdrawal(withdrawal是什么意思)

withdrawal(withdrawal是什么意思)

今天给各位分享withdrawal是什么意思的知识,其中也会对withdrawal是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 07:00

根据流程图怎么编写程序(用c语言根据流程图写程序)

根据流程图怎么编写程序(用c语言根据流程图写程序)

大家好,今天小编来为大家解答以下的问题,关于根据流程图怎么编写程序,用c语言根据流程图写程序这个很多人还不知道,现在让我们一起来看看吧!

2026年10月11日 06:00

在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)

在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)

大家好,关于在from子句中可以出现很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于如何在from 子句中嵌套查询下面的语句在access中出错!的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望

2026年10月11日 05:20

countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)

countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)

其实countif函数统计个数怎么用的问题并不复杂,但是又很多的朋友都不太了解countif函数怎么用 详解Excel中countif函数的使用方法,因此呢,今天小编就来为大家分享countif函数统计个数怎么用的一些知识,希望可以帮助到大

2026年10月11日 03:30

正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)

正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)

本篇文章给大家谈谈正则匹配数字之前的字符,以及正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问

2026年10月11日 03:00

register语言学(register语言学)

register语言学(register语言学)

“register语言学”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看register语言学(register语言学)!

2026年10月11日 01:40

系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)

系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)

“系统架构设计师可以直接考吗”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)!

2026年10月11日 01:00

orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)

orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)

大家好,如果您还对orlnsertbootmediinselected不太了解,没有关系,今天就由本站为大家分享orlnsertbootmediinselected的知识,包括我电脑开机显示这个是什么意思or insert boot med

2026年10月10日 23:00

display的用法(display是什么意思 详解display的含义和用法)

display的用法(display是什么意思 详解display的含义和用法)

大家好,如果您还对display的用法不太了解,没有关系,今天就由本站为大家分享display的用法的知识,包括display是什么意思 详解display的含义和用法的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月10日 22:00

html全部居中代码(怎么让网页居中显示,html如何让网页居中)

html全部居中代码(怎么让网页居中显示,html如何让网页居中)

大家好,今天小编来为大家解答以下的问题,关于html全部居中代码,怎么让网页居中显示,html如何让网页居中这个很多人还不知道,现在让我们一起来看看吧!

2026年10月10日 21:10

最近更新

withdrawal(withdrawal是什么意思)
2026-10-11 07:00:01 浏览:0
热门文章

标签列表