1~~定义常对象
方式:
类名 const 对象名(实参表)
或者 const 类名 对象名(实参表)
注意:
定义常对象的时候需要进行初始化,之后就不能改变了
说明:
如果一个对象被声明为一个常对象,则通过该对象只能调用他的常成员函数,而不能调用该对象的普通成员函数
除了 系统自动调用的隐式构造函数和析构函数
常成员函数是常对象的唯一的对外开放的接口
常成员函数可以访问但是不能改变任意值
注意:
只能通过构造函数的参数初始化表对常成员数据进行初始化
2~~常成员函数
方式:
类型名 函数名 (参数表) const ;
注意:
const 是函数函数类型的一部分
在声明和定义函数的时候都需要有const 关键字
使用时注意:
常成员函数不能够调用另外一个不是const 成员函数
不要误认为常对象的函数中都是常成员函数,常对象只是保证他的数据成员都是常成员数据,并且值不被修改
3~~指向对象的常指针
方式:
类名 *const 指针变量名
注意:
一旦初始化为一个对象的指针就能再改动了
可以:student *const p=&stu;
或者分两步也行的
4~~指向常对象的指针变量
作用:
当一个变量已经被声明位一个常变量,只能用指向常变量的指针指向它,而不能用非cosnt 型变量的指针去指向它
方式:
const 类型名 *指针变量名;
注意:
const 的位置
const 指向的都不能进行改变它的值
这个指针也可以指向一个不是常变量
对于形参和实参的const 使用:
当函数形参是指向非const 变量的指针变量,实参只能用指向非const 变量的指针
引用:
形参中要是不想对实参的值改变的话就可以用这样的方式
void display (const student & t)
另外: 当一个对象被声明位一个常对象,就只能用const 指针变量指向它
重要规则:
当希望调用函数对象的值不被改变,就应当吧形参定为指向常对象的指针变量
同时用对象的地址作为实参(可以是const 也可以是非cosnt 型)