标签:
一个函数 AcGePoint3dstartPoint() const; const放在后面跟前面有区别么
==> 准确的说const是修饰this指向的对象的 譬如,我们定义了 classA{ public: f(int); }; 这里f函数其实有两个参数,第一个是A*const this, 另一个才是int类型的参数 如果我们不想f函数改变参数的值,可以把函数原型改为f(constint),但如果我们不允许f改变this指向的对象呢?因为this是隐含参数,const没法直接修饰它,就加在函数的后面了,表示this的类型是constA *constthis。 const修饰*this是本质,至于说“表示该成员函数不会修改类的数据。否则会编译报错”之类的说法只是一个现象,根源就是因为*this是const类型的
在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针。可以改变this所指向的值,但不能改变 this所保存的地址。 在 const成员函数中,this的类型是一个指向 const类类型对象的 const指针。既不能改变 this所指向的对象,也不能改变 this所保存的地址。
http://blog.csdn.net/zcf1002797280/article/details/7816977
标签:
原文地址:http://www.cnblogs.com/qingyuanhu/p/4301468.html