问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

函数后面加constant是什么意思呀

发布网友 发布时间:2022-05-05 11:12

我来回答

3个回答

热心网友 时间:2022-06-27 10:45

首先,是加const不是constant。
函数后面加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函数并标记出来是个好习惯,既保证自己不会对类误操作,也可以明示别人调用你的类里哪些会改变类状态。

热心网友 时间:2022-06-27 10:45

使用CONST说明的成员函数,称为常成员函数。只有常成员函数才有权使用常量或常对象,没有使用的CONST说明的成员不能使用常对象。
const成员函数和const对象

实际上,const成员函数还有另外一项作用,即常量对象相关。对于内置的数据类型,我们可以定义它们的常量,用户自定义的类也一样,可以定义它们的常量对象。例如,定义一个整型常量的方法为:

const int i=1 ;

同样,也可以定义常量对象,假定有一个类classA,定义该类的常量对象的方法为:

const classA a(2);

这里,a是类classA的一个const对象,"2"传给它的构造函数参数。const对象的数据成员在对象寿命期内不能改变。但是,如何保证该类的数据成员不被改变呢?

为了确保const对象的数据成员不会被改变,在C++中,const对象只能调用const成员函数。如果一个成员函数实际上没有对数据成员作任何形式的修改,但是它没有被const关键字限定的,也不能被常量对象调用。
调用规则
对象 成员函数 对/错

5、 const const 对

6、 const non-const 错

7、 non-const const 对

8、 non-const non-const 对

热心网友 时间:2022-06-27 10:46

constant

1.常量
编程词汇不完全手册(英中对照版) - Po...
constant 常量
2.常数 ②恒定的,不变的
医学英语词汇(C2) - 乐学网翻译频道 ...
constant ①常数 ②恒定的,不变的
3.恒定的,不断的,经常的
商务英语考试词汇练习(3)—优网培训ueu...
constant adj. 恒定的,不断的,经常的
既然是函数后面的应该是常量的意思
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...到什么程度?我想把电脑配置提升到能正常玩3D游戏不卡需要换什么东西... 我想玩天下贰高手进推荐配置 ...主要要天下贰过3d和4d游戏,要什么配置?强力感谢!详细点 跪求哪位大佬有2021高考生物周芳煜押题课的视频课程,分享下非常感谢 神通广大的网友们,谁有2021高考数学宋超押题课的资源,非常感谢 ps文字改不了颜色只能是白色ps里文字改不了颜色 ps为什么不能换颜色ps为什么不能换颜色背景 懂电吉他的人进来急!!!高分啊!! 虎年农历5月19日下午13点34分出生,女孩,五行缺土,父亲姓贾,母亲姓吴 ...母亲姓吴,男孩叫“贾?吴”,或者“贾吴?”,羊年,要草字部首,还要注意... 如何在eclipse中调试自定义的ant task Fortran语言:CHARACTER COMENT(*)*60和CHARACTER ANT*(*)是什么意思? 或将于2021年初亮相,宝马4系Gran Coupe谍照曝光 2022款宝马4系Gran Coupe路试谍照曝光 预计明年亮相 50万在手要买56E?这台性感尤物更香 试驾| 什么是真香?宝马4系就叫真香! 成都车展重磅轿车提前看,全新一代宝马4系领衔,你最期待谁? 全新宝马4系双门轿跑车全球首发 10月起投放市场 全新宝马4系双门轿跑车搭载的动力系统怎么样?动力表现如何? 敢为人先 抢先试驾全新BMW 4系 全新一代宝马4系发布,这绝对是你没见过的全新版本 吊砖增高有用吗? 吊砖能否长高.? 吊砖法增高是否可行?是否会对身体产生伤害? 关于吊砖长高 吊砖增高和倒吊增高,是否能增高 什么是掉砖增高 吊砖法到底能不能增高啊? 吊砖增高成功的人 属蛇人的一生运势如何 三角函数什么是tactant 这个问题咋解决? php通过web端用exec()函数进行调用shell脚本 打包安卓APK的时候,shell脚本里面有ant命令,不执行ant命令 读三角函数的符号时,是读缩写还是读全部,且缩写和整个单词的国际音标各是什么? ant-desgin 请问怎么通过setFieldsValue设置动态增减表单项的值 ant 已过时的API 高数不定积分计算? 关于不定积分的第二类换元法 sectant等于多少? 考研数学中 换元积分法的第二种方法叫什么 (三角函数的转化) atant-at的导数 即是奇函数又是偶函数的函数除了f(x)=0,还能是什么? acrtant1等于多少度 长头发的和尚,“长”字的拼音应该怎么拼? 我的头发长长了拼音怎么拼 头发的头的拼音? 女人我最大100908这一期牛尔老师介绍的产品 如何监定田黄石真皎。我有一块田黄印章,是祖传的。现已高龄想鉴定后出手以资养老。倩问如何操作? 他那披散的长头发中间露(lou lu)出一张苍白的脸。露读哪个音?