网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
10月08日
漏签
0
天
c语言吧
关注:
794,191
贴子:
4,320,547
看贴
图片
吧主推荐
视频
游戏
12
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
为什么const的存在会有影响
只看楼主
收藏
回复
零号8u
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
const只是限制值的改变,理论上没有const也不影响程序的运行,但为什么会这样
零号8u
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
于是我从简单的入手,去测试是否必需const,结果如下,这个和镇楼图的区别在哪?求大佬指教
夸克
海量题库,讲解透彻,难题轻松学懂
2024-10-08 14:05
广告
立即查看
运球帝
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
一般来说,如果用了const,编译器就认为你声明你不会修改它。
如果你后面又企图用各种方式绕开限制去修改它,就是未定义行为了。c/c++标准没有考虑也没有规定这些情况下该怎么做,编译器高兴怎么做就怎么做,所以无论出现任何结果都是对的。
GTA小鸡
吧主
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
因为Vertex(1,2,3)是个右值,右值不能绑定到非常量左值引用。
__下划线__
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
吧主上面说得对,你不能给引用类型传常量,但是给const &可以,这里编译器做了特殊处理
起个名字
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
=号它会看你有没有重写=号,如果没有,才会去调用拷贝构造函数,拷贝构造一般都用const引用,这是固定格式,而不要想着去掉const又或者把引用换成指针
起个名字
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这些都是语法规则,需要的是记住而不是为什么,就像1+1=2一样,你问我为什么我也不知道,这就是规则
起个名字
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
加const的原因还有就是使用常量值对对象初始化调用拷贝构造函数时,**语法不支持,所以必须要有const
众焱文化传媒
查一下自己是什么星座小心!2024年,你的财运,情感,事业将迎来的重大转变!查一下自己是什么星座该小心的地方要小心,该抓住机遇要抓住,别错过发财致富好运更别错过爱你的人
2024-10-08 14:05
广告
立即查看
起个名字
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
如果你不在乎用常量值来初始化就可以不加
贴吧用户_Q6b7MNM
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你在pushback的时候,传进去的是一个vertex(1,2,3),在这时,会构造一个临时对象,再进行pushback,这时候又会调用这个类的拷贝构造再构建一个新对象放到容器里面,但是这个时候如果你的拷贝构造没有加const,传进去的值是一个临时对象,他是一个纯右值,不能被你写的这个拷贝构造函数所接受
零号8u
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
懂了,谢谢吧友们
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示