有人说理解不了C++的const,特发此帖,大牛轻砸
时间:2010-06-28
来源:互联网
本帖最后由 xyfree 于 2010-06-28 18:12 编辑
1. C++里面的const,用于修饰数据时,效果和C是一样的,这个不用多说吧?
2. C++ 中 const 也可用于修饰成员方法
这时候的效果是怎样? 首先要知道 C++中的成员方法,和C中的普通函数有何差别?
复制代码
实际上,成员方法 Sample::sample_method 的定义会被编译器改写成这样;
复制代码
C++建议,如果成员函数不修改对象,声明为const,就是说,这样声明:
复制代码
实际上,加了const修饰之后的成员方法 Sample::sample_method 的定义会被编译器改写成这样;
复制代码
const Sample *const this 的意思就是
指针所指向的Sample对象是不可改变的,指针的指向也是不可改变的。
不明白的后面跟帖回复。
1. C++里面的const,用于修饰数据时,效果和C是一样的,这个不用多说吧?
2. C++ 中 const 也可用于修饰成员方法
这时候的效果是怎样? 首先要知道 C++中的成员方法,和C中的普通函数有何差别?
- class Sample {
- public:
- int sample_method() { return sample_property; }
- private:
- int sample_property;
- };
- int Sample_sample_method(Sample *const this) {
- return this->sample_property;
- };
- class Sample {
- public:
- int sample_method() const;
-
- // 以下从略
- };
- int Sample_sample_method(const Sample *const this) {
- return this->sample_property;
- };
指针所指向的Sample对象是不可改变的,指针的指向也是不可改变的。
不明白的后面跟帖回复。
作者: xyfree 发布时间: 2010-06-28
我现在主站没权限了,等有了再说吧。
作者: prolj 发布时间: 2010-06-28
这个明白
作者: chinesedragon 发布时间: 2010-06-28
回复 prolj
再说什么?
再说什么?
作者: xyfree 发布时间: 2010-06-28
是不是就指针常量和常量指针的问题
C++真的不懂,不过楼主解释成员方法的内在形式,有点启发,C++编译器应该是C语言实现的。。心理平衡了一点。

C++真的不懂,不过楼主解释成员方法的内在形式,有点启发,C++编译器应该是C语言实现的。。心理平衡了一点。
作者: peijue 发布时间: 2010-06-28
const这玩意有传染性,不爽。


作者: donglongchao 发布时间: 2010-06-28
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28