|
|
发表于 2005-5-26 15:48:11
|
显示全部楼层
Post by nait
当时很急(急着去考试:-))所有匆匆忙忙灌了一通就走了
其实上面说的不是很准确,准确的说const是修饰this指向的对象的
譬如,我们定义了
class A{
public:
f(int);
};
这里f函数其实有两个参数,第一个是A *const this, 另一个才是int类型的参数
如果我们不想f函数改变参数的值,可以把函数原型改为f(const int),但如果我们不允许f改变this指向的对象呢?因为this是隐含参数,const没法直接修饰它,就加在函数的后面了,表示this的类型是const A *const this。
const修饰*this是本质,至于说“表示该成员函数不会修改类的数据。否则会编译报错”之类的说法只是一个现象,根源就是因为*this 是const类型的
看来兄弟真是深入理解C++了。 |
|