类和对象 第三部分第三小节:const修饰成员函数

一.常函数:

(一)成员函数后面加const后我们成这个函数为常函数

类和对象 第三部分第三小节:const修饰成员函数_第1张图片

(二)常函数内不可以修改成员函数属性

类和对象 第三部分第三小节:const修饰成员函数_第2张图片

额外补充:

this指针的本质,是指针常量,指针指向的是不可以修改的

类和对象 第三部分第三小节:const修饰成员函数_第3张图片

但是指针指向的值是可以修改的

在此案例中,this可以等于person *const this,因此,const person * const =void showperson() const,在成员函数后面加const,本质上是修饰this指针,让指针所指向的值也不可以修改

(三)成员属性声明时加关键字mutable,在常函数中依然可以修改,在常对象中亦可以修改

类和对象 第三部分第三小节:const修饰成员函数_第4张图片

二.常对象

(一)声明对象加const称该对象为常对象,常对象不可以修改属性

类和对象 第三部分第三小节:const修饰成员函数_第5张图片

(二)常对象只能调用常函数,不可以调用普通成员函数,因为普通成员函数可以修改属性,这违背了常对象得基本原则

1.常对象调用常函数

类和对象 第三部分第三小节:const修饰成员函数_第6张图片

2.常对象调用普通成员函数

类和对象 第三部分第三小节:const修饰成员函数_第7张图片

你可能感兴趣的:(#,C++核心编程,c++,开发语言,程序人生)