使用Const,把有关数据定义为常量(常变量,常对象,常函数)。
既要使数据能在一定范围内共享,又要保证它不被任意修改。
1、常对象
2、常对象成员
3、指针对象的常指针
4、指向常对象的指针变量
5、对象的常引用。
回顾,常变量,const int PRICE=40;在程序中 PRICE的值不会被修改。
凡希望保证数据成员不被改变的对象,可以声明为常对象。
常对象中的所有成员的值都不能被修改。
常对象必须要有初值,如 Time const t1(12,13,14);const Time t1(12,34,46);
要引用常对象中的数据成员,需将该成员函数声明为const型函数,常成员函数。
常成员函数可以访问常对象中的数据成员,但不允许修改常对象中的数据成员的值。
常数据成员。限制。const函数。
#include <iostream>
using namespace std;
class Time
{
private:
int hour;
int minute;
int sec;
public:
Time():hour(0),minute(0),sec(0){};
Time(int h,int m,int s):hour(h),minute(h),sec(s){};
void set_time(int h,int m,int s)
{
hour=h;
minute=m;
sec=s;
}
void show_time() const
{
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
};
int main()
{
const Time t1(10,10,10);
t1.show_time();
return 0;
}
常指针:将指针变量声明为const型,指针值始终保持为其初值,不能改变;
类名* const 变量名;(常指针,始终保持其初值)
int main()
{
Time t1(10,12,15),t2;
Time* const pt=&t1;//pt是常指针
pt=&t2;//错误,pt应始终指向同一个对象
return 0;
}
指针值不可变,指针指向的对象值是否可以改变呢,这取决于指向的对象。
常见用途作为函数的形式参数,不允许在函数执行的过程中改变指针变量的值。
指向常变量的指针变量。
定义指向常变量的指针变量的一般形式为:
const 类名 * 变量名/ 类名 const *变量名
const char c[] ="hello";
const char* pt=c;//指向了常变量的指针指向常变量。