const在c++中出现:
const的目的:既要能使得数据在一定范围内共享,又要保证它不能被任意修改,这时可以使用const将其定义为常量;
一、const修饰数据成员
叫做常数据成员;
必须在构造函数的初始化列表内初始化;
常数据成员不可以被修改;
二、const修饰函数
叫做常成员函数;
const修饰只读函数,即函数不可以改变数据的值;
三、const修饰对象
常对象一经定义不可以被修改;
常对象也不能调用非const型的成员函数;
四、const和对象、指针之间的关系
-
指向常对象的指针:
Circle c(1,2,3,4);//定义一个对象
const Circle * p = &c ;//定义一个指向常对象的指针
此时const修饰的是类Circle,所以指针p是可以改变的;但由于目前p指向的是常对象,所以p只可以访问const成员; -
指向对象的常指针:
Circle c(1,2,3,4);//定义一个对象
Circle * const p = &c ;//定义一个指向对象的常指针
此时const修饰的是指针,所以此时p是不可以改变的;其他照常访问即可; -
指向常对象的常指针
Circle c(1,2,3,4);//定义一个对象
const Circle * const p = &c ;//定义一个指向常对象的常指针
此时const既修饰对象也修饰指针,所以指针不可以改变,也只能访问const成员;