永发信息网

函数里的 con 是什么意思?

答案:1  悬赏:10  手机版
解决时间 2021-03-22 02:12
函数里的 con 是什么意思?
最佳答案
函数后面加const是表明这个函数不会更改class的状态,即class内各成员变量的值。编译器如果发现某个const函数里改变了成员变量的值会报错。比如下面这个例子。
struct A {
int i;
void set(int v) {i = v;} //不能加const,因为i值改变了。
int value() const {return i;} //正确,i值没有改变。
int value2() const {return i++;} //错误,因为i值改变了。必须将const去掉。
};

如果函数比较复杂时,比如并不直接改变某个值,但是调用了其它函数,编译器怎么判断函数是否const呢。可以看下面的例子。

struct B {
A a; //B里包含一个A类成员。
int func1() const {return a.value();} //正确,所调用的a.value()也是一个const函数。
int func2() const {return a.value2();} //错误,a.value2()不是const函数。
};

也就是说,在const函数里只能调用成员的const函数以保证成员状态不会改变。

所以,在设计类的函数里,区别const和非const函数并标记出来是个好习惯,既保证自己不会对类误操作,也可以明示别人调用你的类里哪些会改变类状态。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如图是盐酸滴人氢氧化钠溶液中,有关粒子之间
请问高考所指的艺术生的专业课和文化课的概念
2015明锐1.6逸俊表1表2表3怎么调出来呀
70岁以上能开股指期货户吗
老婆在恋爱时要求孩子和她姓她家没儿子还和我
微信公众号能申请几个,一个手机号能注册几个
梦见学校开大会电线冒烟起火
小米2s进入fastboot模式怎么退出
兴隆路/长集路(路口)在哪里啊,我有事要去这
ThinkPad T440电脑有时没插电源开不了机,有
由于过多消耗化石能源导致大气中二氧化碳过多
伤感句子表达心情短句,伤感的心情的句子
感冒了,不知道什么原因脑袋疼,而且就只有前
我的世界pe手机版怎么做活塞汽车
铝合金T64热处理具体过程?
推荐资讯
有参加过ACM的么,能不能帮忙解答下这道Calcu
火字旁 加 一个安字 怎么读
怎样才能成为一名学科带头人
台湾喜剧欢喜来逗阵大结局是怎样的?黄辉宏娶
珠海工作好找吗?
大神指教,做网站那些模块要独立开来单独调用
电动车怎么骑省电,怎么学会骑电动车?会骑自
解答题叙述双曲线的定义,并建立适当的直角坐
魏晨贴吧我要会员
宝贝换主图有影响吗,我的淘宝宝贝主图在有销
请问新疆地区百度云什么时候可以开放?新疆也
求问koneya减肥药 真的是日本的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?