C++常量都有哪些
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,C++常量都有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.常量形参当形参有顶层const或者底层const的时
千家信息网最后更新 2026年11月04日C++常量都有哪些
C++常量都有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1.常量形参
当形参有顶层const或者底层const的时候,传给它常量对象或者非常量对象都是可以的,在这里我们主要考虑形参无const, 而实参有const的情况,其实这里也十分简单,只需要记住一点:底层const的限制,就可以了。
2.常量返回值
这里也很简单,略过不提。
3.常量成员函数
常量函数里的const是用来修饰*this的,其形式如下:
int f() const{```}然后这里就有意思了
*this的默认类型是type *const this,this指针有一个顶层const,但并没有底层const,由于低层const的限制,有底层const的实参不能拷贝给默认版的*this,也就是说常量对象的引用或指针都不能调用默认版的*this成员函数。
还没完。。。
刚刚我们已经明确了有底层const的实参是无法初始化默认版*this,但是拥有顶层const的对象是不是就能初始化默认版的*this, 然后调用函数呢?
不是。。
//定义一个简单类studentclass student{public: string name; int number;public : student() :name("lili"), number(0){ }//构造函数 string Name(){return name;}//非常量成员函数 int Number() const{return number;}//常量成员函数};//现在定义一个常量student对象const student s1;s1.Name();//报错s1.Number();//正确事实上,当我们调用s1.Name()的时候发生了以下初始化过程:
student *const this=&s1;
此时相当于如下过程:
const student *s1;student *const this=s1;
很显然s1有一个底层const, 而this没有,初始化失败。
同理,如果一个实参是 int *const p,那么在初始化this的时候,会转化成const int *const p, 有一个底层const, 初始化失败。
常量对象,常量对象的指针或者引用都只能调用常量成员函数。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
常量
函数
对象
底层
成员
指针
时候
顶层
形参
过程
帮助
限制
C++
清楚
有意思
也就是
也就是说
事实
事实上
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
瑰夏咖啡
互联网科技企业
深圳市人人互联网科技有限公司
江苏根荣互联网科技
互联网科技卖菜
深圳互联网科技公司
金融科技和互联网金融
创业天下互联网科技有限公司
湖南一路畅行互联网科技
高科技互联网发展前景如何
浙南科技城互联网大厦招聘
有人说阿里系是互联网科技企业
上海乐五互联网科技有限公司
上海同邻互联网科技有限公司规模
全球科技与互联网公司市值变化
北京天晋互联网科技有限公司
众联互联网络科技
安徽九吞吴互联网科技有限公司
青岛互联网科技园
科技美学互联网 艺术
中国互联网科技发展
郑州华宇互联网科技
互联网高科技股票
互联网科技视频素材
互联网 科技馆
湖南洣水互联网科技有限公司扣款
北京三清互联网科技
米聚互联网科技南京有限公司排面
佛山市拉法互联网科技有限公司
互联网公司高科技产品