c++的对象里有一个指针一直指向他自己,这个指针就是this指针,这个指针是在类的成员函数内部隐式调用的。可以认为在类调用成员函数的时候,编译器会自动的在参数列表的最后一个位置加上一个指针,比如类名叫做 A,那么这个指针就是A *const this指针。是一个常量指针,但是指向非常量的对象,如果是一个常量对象的话,就不可以了,这意味着我们不可以把一个this指针指向一个常量的对象,如何解决这个问题,就需要我们把this指针声明成为一个指向常量的常量指针。
怎么声明呢?就需要我们在成员函数的参数列表的后边添加一个const关键字,这样子传递给函数的就是一个指向常量的常量指针,这样子,在函数内部所有试图改变对象的操作都是非法的,编译器都会报错,所以,以后任何不希望更改对象的函数,都声明成为const函数。
怎么声明呢?就需要我们在成员函数的参数列表的后边添加一个const关键字,这样子传递给函数的就是一个指向常量的常量指针,这样子,在函数内部所有试图改变对象的操作都是非法的,编译器都会报错,所以,以后任何不希望更改对象的函数,都声明成为const函数。