C++常对象与对象成员
1、常成员是指使用常类型修饰const修饰说明的成员,分为常成员函数和常数据成员。
2、常数据成员,当希望该成员不被修改时用到,用const声明为常数据成员,受到保护,不会被改变。
任何函数不能对常数据成员赋值,也不能更新。只能在构造函数的成员初始化来实现。
3、构造函数的成员初始如图所示,并且示例。常数据成员本身就是一个数据成员,但这个“常”使它有了不能被更改的特性,所以,用到不能被更改的数据时可以用常数据成员来定义


4、常成员函数的说明方式如图


5、常成员函数的使用:
1.常成员函数 既可以引用 常数据成员 也可以使用 非常数据成员
2.只有 常成员函数 可以操作 常对象。
3.常成员函数 中可以引用 非常数据成员,但不可以改变其值
4.即使在 常对象 中,有const说明的才是 常成员函数,否则是 非常成员函数
1、常对象是指由const修饰的对象。定义常对象时要初始化。并且该对象以后不能再更新,修饰符const可在前也可在后。如图为例。


2、常对象使用注意:1.常对象的数据成员都是常数据成员,也就是一旦初始化就不能更新
2.常对象的成员函数保持原样,有const修饰的是常数据成员函数,没有的则是普通成员函数
3.只有常成员函数可以操作常对象
1、常指针是指使用const修饰说明的指针,有两种不同含义的常指针,一种表示指针的地址值是常量,另一种表示指针所指的量是常量。
2、地址值是常量的常指针。
讲的是这个指针指的地址是常量,打比方说,一开始初始化指针1指向了对象a,后面就不能再存在将指针1指向指针b的情况,否则就会报错,这样避免了指针的错乱。
当然,指针所指地址上的值是可以改变的,也就是对象a如果是 非常对象,并且不全为常数据成员,则可以进行数据更新。
3、请看地址值是常指针的定义格式。


4、第二种就是所指向的值是常量的常指针了。
顾名思义。这个指针可以先指向a再指向b,但是当这个常指针指向a时,a的值便不能再更新。
5、请看所指向的值是常量的常指针的定义格式。

1、对象常引用是指所引用的对象不能被更新,一般做函数的形参来使用。
定义格式如图


2、引用 在函数中如果更改了值,则当跳出函数时也会将数据的改变带回来。而对象常引用则是避免了这种情况的发生,因为我们常数据是禁止更新的,所以,当在函数中有更新数据的情况时,系统会报错。同时,运用引用也可以在参数传递过程中减少拷贝构造函数的使用,加快速率