1.声明常量
const int i=0;
int const i=0;
2.指针常量
int x=30;
int i=20;
int * const pi=&i;
pi=&x;//这样是错误的。
*pi=30;//正确的。
3.常量指针。
int const x=30;
int const i=20;
const int* pi=&x;
pi=&i;//正确的
*pi=20;//错误的。
3.指向常量的常量指针
int const i=20;
int const x=30;
const int * const pi=&i;
pi=&x;//错误的
*pi=30;//也是错误的
4.使用const 修饰函数返回值
const char* GetString();//函数返回的值不能被修改即指针所指向的内容不能被修改。
4.const成员函数。
class Stack
{
public:
void Push(int elem);
int Pop(void);
int GetCount(void) const; // const成员函数
private:
int m_num;
int m_data[100];
};
int Stack::GetCount(void) const
{
++ m_num; // 编译错误,企图修改数据成员m_num
Pop(); // 编译错误,企图调用非const函数
return m_num;
}