【C++】类的const成员

1 const成员

1.1 const修饰类的成员函数

在日期类中,我们实例化一个普通对象,普通对象调用成员函数要传参,传给隐含的this指针。普通对象调用Print(),要把d1的地址传给this指针,那如果是const对象呢?

const对象取地址是const Date* ,所指向的内容不能被修改,此时如果只是一个普通的成员函数是不能编译通过的。因此此时我们要将this指针变成const this *,但是我们没发改,因此我们在后面加const
【C++】类的const成员_第1张图片

此时普通对象可以调用(权限缩小),const修饰的对象也可以调用(权限不变)。

总结:建议成员函数中不修改成员变量的成员函数,都可以加上const

好处:普通对象和const对象都可以调用
const->const 权限一样
普通->const 权限的缩小

Q: 思考下面的几个问题:

  1. const对象可以调用非const成员函数吗?

  2. 非const对象可以调用const成员函数吗?

  3. const成员函数内可以调用其它的非const成员函数吗?

  4. 非const成员函数内可以调用其它的const成员函数吗?

【C++】类的const成员_第2张图片

你可能感兴趣的:(C++,c语言,c++,数据结构,算法,linux)