C++中this指针和const常量函数

https://blog.csdn.net/zhangxiao93/article/details/50599104,这个讲的很好。

1.this指针本质

它是一个常量指针,只能指向一个对象,不能更改。

2.常量对象与常量函数之间

常量对象不能更改数据成员,this指针是指向常量的常量指针, 它不能调用非常量成员函数,是因为非常量指针不能指向常量对象。

这个举的例子就非常好:

int main()
{
//...
    A a1;
    const A a2;
    a1.func1();
    //等价于a1.func1(&a1);//ok

    a1.func2();
    //等价于a1.func2(&a1);//ok

    a2.func1();
    //等价于a2.func1(&a2);//ok

    a2.func2();
    //等价于a2.func2(&a2);//error
}

 主要就是从成员函数的第一个参数是this指针角度来考虑的。

原文地址:https://www.cnblogs.com/BlueBlueSea/p/13914475.html