前言
程序中各种形式的数据共享,在不同程度上破坏了数据的安全性。常类型的引入,既能保证数据的共享又能防止数据被改动,常类型是用类型修饰符const说明的类型,常类型的变量或对象成员的值在程序运行期间是不能改变的。
一、常引用
说明引用时用const修饰,则被说明的引用为常引用。如果引用为形参,则不会对实参产生不希望的更改。引用作形参,能够避免对实参的更改,保证了数据的安全。
格式为:const 类型 &引用名
int a = 5;
const int &b=a;
如果出现
b=12;
则是错误的
二、常对象
说明对象时用const修饰,则被说明的引用为常对象。常对象的数据成员值在对象的整个生存期内不能改变,常对象不能调用普通成员函数
格式为:const 类名 对象名[(参数表)] 或者 类名 const 对象名[(参数表)]
三、常对象成员
1.常数据成员
常数据成员,构造函数只能通过成员初始化列表对该数据成员进行初始化,其它任何函数都不能对该成员赋值。代码如下:
#include <iostream>
using namespaace std;
class Date{
public:
Date(int y,int m,int d);
private:
const int year;
const int month;
const int day;
};
Date::Date(int y,int m,int d):year(y),month(m),day(d)
{ }//初始化列表
int main()
{ Date date1(1996.12.8);
return 0;
}
2.常成员函数
格式为:类型说明符 函数名(参数表)const;
声明和定义的时候要有const,调用的时候不用加。const可用于区分重载函数。