社区
C++ 语言
帖子详情
有关函数const重载的对错
菜鸡的逆袭之路
2017-01-01 09:38:29
RT,为什么const string &shorterString(const string&,const string&) 与
string &shorterString(string&,String&)可以重载,而
int calc(int,int)和int calc(const int,const int)却不能重载?
同是const和非const,请问const重载的条件是什么?
...全文
97
2
打赏
收藏
有关函数const重载的对错
RT,为什么const string &shorterString(const string&,const string&) 与 string &shorterString(string&,String&)可以重载,而 int calc(int,int)和int calc(const int,const int)却不能重载? 同是const和非const,请问const重载的条件是什么?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ri_aje
2017-01-02
打赏
举报
回复
calc 那种写法经过 prototype adjustment 以后生成同样的 signature,所以没法重载。
幻夢之葉
2017-01-01
打赏
举报
回复
const 参数用在引用和指针可以作为一个重载版本(const返回值并不在考虑列表) int calc(int,int)和int calc(const int,const int)却不能重载? 答: 参数值传递,不管如何,函数用到的始终是实参的一个副本。 所以你加const是没有任何意义的 在值传递的参数中,const参数跟非const参数的两个版本所代表的含义完全相同,因此不支持重载
C++
const
与
函数
重载
大部分情况下,
const
修饰形参本身并不直接影响
函数
重载
的判定,因为
const
修饰的是形参的 ,不影响参数类型; 但是,如果
const
修饰的是指针或者引用,那么如果是 底层
const
会影响参数的类型,从而导致
重载
。简单区分一下 顶层
const
和 底层
const
:顶层
const
:顶层 表示指针本身是个常量, 被修饰的变量本身无法改变;底层
const
:底层 表示指针所指的对象是一个常量。
const
对普通
函数
的
重载
的影响 值传递的形参,是否加
const
不构成
重载
顶层
const
指针传递的形
C++
函数
重载
之
const
的
重载
C++
函数
重载
之
const
的
重载
C++ 中使用
const
进行
函数
重载
在 C++ 中,我们可以使用关键字
const
来修饰
函数
的参数,从而实现
函数
重载
。通过在
函数
参数中添加
const
修饰符,我们可以创建具有不同参数类型(
const
和非
const
)的
函数
重载
。需要注意的是,
const
成员
函数
内部不能修改类的成员变量,但可以调用其他
const
成员
函数
。如果
const
成员
函数
修改了成员变量的值,或者调用了非
const
成员
函数
,编译器将会报错。通过使用
const
进行
函数
重载
,我们可以根据对象的
const
属性来选择不同的
函数
版本。
C++
函数
重载
与
const
文章目录前言一、参数只有有无
const
的区别1.利用
const
函数
重载
的例子2.利用
const
不能
函数
重载
的例子二、其他情况1.情况12.情况23.情况3总结 前言 利用
const
也可以实现
函数
重载
,但也是在一定情况下才能 一、参数只有有无
const
的区别 1.利用
const
函数
重载
的例子 #include <iostream> #include <string.h> using namespace std; class A{ public: int fun(
const
函数
重载
与
const
形参
函数
重载
与
const
形参 在类中,经常需要一些形参不同但相同功能的
函数
,如果对每一个
函数
,都给定一个独一无二的
函数
名,无疑会降低代码的易读性,也不便于维护;对于此情况,通常利用
函数
重载
来解决。 结合自己的经历,介绍一些在
函数
重载
中可能会忽视的点: (1)
函数
重载
可以通过形参的类型或者数量不同来实现; (2)
函数
重载
不能仅仅通过返回值类型不同来实现; (3)在
重载
中容易忽视的是利用
const
来实现
重载
,说实话,在看到此方式之前我是没有注意到这种情况的: 如果形参是某种类型的指针或者引用,通过区分指向的是常量还
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章