this指针和const成员函数
const对象只能调用const成员函数
this指针
类的成员函数都有一个隐式的this指针来指向调用该函数的那个类对象,this总是指向这个对象,所以this指针是个指针常量,属于顶层const。
可以通过*this来返回对象。
以下是一个结构体类型(C++中的结构体可以有成员函数)
1 |
|
const成员函数
默认情况下this指针是INT * const
类型,是指向非常量的指针常量(可以通过指针改变对象值,但不能改变指针指向),它是不可以指向常量对象,所以const类型的类对象不能调用普通的成员函数。
这个时候就需要const成员函数出马了。const成员函数的形式是在参数列表的括号后面加上一个const关键字,如上图中的show()函数
1 |
|
const修改this指针的类型,使之变成const INT* const
,即指向常量的指针常量,所以const对象只能调用const成员函数
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!