常量的介绍
如果数据能在一定范围内共享,又希望他不被任意更改,可以使用const,把有关数据定义为常量;常量具有只读特性。
常对象
- 定义常对象形式:
注意:使用const声明常对象时,声明的同时必须进行初始化;
//第一种
类名 const 对象名[(实参列表)]
//第二种
const 类名 对象名[(实参列表)]
例1
Cdata const d1(2001, 5, 1); //定义常对象d1
常数据成员
使用const关键字进行说明的数据成员称为常数据成员。常数据成员初始化只能通过构造函数的初始化列表对常数据成员进行初始化。
例1
const int age; //age为常数据成员
Cstudent::Cstudent(int a):age(a){...} //初始化列表对a初始化
常成员函数
使用const修饰的成员函数,称为常成员函数。常成员函数只能引用本类中的数据成员,不能修改他们的值。
- 常成员函数作用:const的函数不能对其数据成员进行修改操作。
- const的对象,不能引用非const的成员函数
常成员函数格式:
类型标识符 函数名(参数表) const;
例1
void print() const; //const成员函数的声明
例2
#include "stdafx.h"
#include <iostream>
using namespace std;
class aa{
int num;
public:
aa(){
int b =10;
num = b;
};
void out1(){
cout<<num<<endl;
}
void out2() const{
cout<<num<<endl;
}
void out3() const{
num+=10; //出错,const函数不能修改其数据成员
cout<<num<<endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
aa a1;
a1.out1();
a1.out2();
a1.out3();
const aa a2;
a2.out1(); // 错误,const的成员 不能访问非const的函数
a2.out2();
a2.out3();
return 0;
}