C++ const对象与非const对象的相互调用、const成员函数与非const成员函数的相互调用

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

C++ const对象与非const对象的相互调用、const成员函数与非const成员函数的相互调用_第1张图片

答:不能。const修饰的对象实则修饰的是该对象的this指针,并且const修饰的成员不能进行修改,如果使用const调用非const成员函数,可能会将const对象进行修改。

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

C++ const对象与非const对象的相互调用、const成员函数与非const成员函数的相互调用_第2张图片

答:可以,这里就是将一个可以修改的对象进行读取,是允许的。

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

C++ const对象与非const对象的相互调用、const成员函数与非const成员函数的相互调用_第3张图片

答:不允许,const成员函数调用非const成员函数,调用该const成员函数的对象已经被设置为const类型,只可以访问不能修改,在用该const成员函数访问其他非const成员函数可能会修改,因此const成员函数不能调用非const成员函数。

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

答:允许,与非const对象调用const对象类似。

你可能感兴趣的:(其他,c++,类)