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

 我来答
ecitluo
2011-08-01 · TA获得超过763个赞
知道小有建树答主
回答量:275
采纳率:50%
帮助的人:121万
展开全部
函数重载,简单来说 就是一个函数名称,但是有多个函数定义,它们是通过函数参数来区分的,
比如
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) { } //编译错误,
liulei4128
2011-08-01 · TA获得超过1335个赞
知道小有建树答主
回答量:813
采纳率:50%
帮助的人:711万
展开全部
首先你要理解什么叫函数重载。
即一个函数多种实现。也可以说是他更细的划分。
举个例子:一个函数叫商品。它下面又分为:家电,日用品,运动。。。

实现:同名,返回值类型不同或者形参不同。其中注意带const型的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
x68251
2011-08-01 · TA获得超过602个赞
知道小有建树答主
回答量:470
采纳率:0%
帮助的人:282万
展开全部
C++的函数重载有两种:
1,通过继承实现重载,典型的应用就是虚函数。
2,同名函数重载,函数名相同,参数类型、个数、返回值不同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
奋斗的怀超
2011-08-01 · 超过14用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:41.7万
展开全部
参数的个数类型不同函数名相同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weekwonder
2011-08-01 · TA获得超过2056个赞
知道小有建树答主
回答量:1456
采纳率:0%
帮助的人:1625万
展开全部
形参的类型和个数、返回值的类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式