C ++语言中const为什么有时候放在定义语句的前面,有时候放在后面,有啥区别?
答案:2 悬赏:0 手机版
解决时间 2021-02-19 00:39
- 提问者网友:且恨且铭记
- 2021-02-18 16:22
C ++语言中const为什么有时候放在定义语句的前面,有时候放在后面,有啥区别?
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-02-18 17:57
你说的定义语句是指的类成员函数吧。
1. type funtion(type2 v)const;
等价于:type function(const *this, type2 v)const;
类的成员函数有隐含的this指针,所以上面的函数其实是有两个形参的,第一个就是this指针,函数后面的const 就是限定this指针为const,从而不允许函数修改调用该成员函数的类对象。
2.在函数前面有const的一般是在要求成员函数返回值为类对象的情形。
const classType& function(type2 v)const;
因为函数后面有const,从而这是一个const成员函数,而有规定const成员函数不能返回指向类对象的普通引用,因此函数的返回类型也必须是const 引用类型。
1. type funtion(type2 v)const;
等价于:type function(const *this, type2 v)const;
类的成员函数有隐含的this指针,所以上面的函数其实是有两个形参的,第一个就是this指针,函数后面的const 就是限定this指针为const,从而不允许函数修改调用该成员函数的类对象。
2.在函数前面有const的一般是在要求成员函数返回值为类对象的情形。
const classType& function(type2 v)const;
因为函数后面有const,从而这是一个const成员函数,而有规定const成员函数不能返回指向类对象的普通引用,因此函数的返回类型也必须是const 引用类型。
全部回答
- 1楼网友:鸽屿
- 2021-02-18 18:33
const是java的保留字,你是要定义常量吧,在java中定义常量是:public static final 返回类型 变量=值
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯