指针
指向常量的指针变量
const 类型名 * 指针变量名;
不允许通过指针变量改变其指向对象的数值。
注:只是限制了通过指针变量改变其指向对象的数值这种方式,你仍可以在初始化等地方改变数值
int a = 12;
const int *p = &a;
*p = 15; //错误 只能通过int a处改变数值
const int a = 12; //常变量 数值始终不会改变
常指针
类型名 const * 指针变量名;
指针变量的指向不能改变
但指针变量的指向不能改变,指针变量的指向变量值可以改变。
char *const pl="China"; / /p1是字符指针变量,其指向不能改变
pl="Canada"; //试图改变p1的指向,不合法
int a=4;
int b=6;
int const p2=&a ; //指定p2只能指向变量a
p2=&b; //试图改变p2的指向,不合法
指向常量的常指针
const 类型名 * const 指针变量名;
对象
常对象
类名 const 对象名 [(实参表)];= const 类名 对象名 [(实参表)];
常对象一定要有初值
常对象只能调用它的常成员函数,常成员函数是常对象唯一的对外接口。
常对象成员
常数据成员
常数据成员的值是不能改变的。
注:
只能通过构造函数初始化表对其进行初始化,其他函数不能对常数据成员赋值。
常成员函数
类型名 函数名(参数表)const ;
只能引用本类中数据成员,但不能修改他们。也不能调用另一个非const 成员函数。
对象 指针
指向对象的常指针
指针变量始终保持初值,即指向不变
*类名 const 指针变量名;