一 const变量

const变量只能访问不能更改,更改会报错
指针使用CONST
(1)指针本身是常量不可变
char* const pContent;

(2)指针所指向的内容是常量不可变
const char *pContent;

(3)两者都不可变
const char* const pContent;

二,const成员函数

一,const成员函数的声明
1,类内声明
类型 函数名(参数列表) const
{
函数体
}
**2,类外定义
**
类型 类名::函数名(参数列表) const
{
函数体
}
二,const成员函数的特点
1,const成员函数内只能读取类的数据成员,无法修改类的数据成员,否者编译器会报错:

class point
{
//没有指出private函数public的话默认是privzte
int x;
int y;
public:
point(int xp=0,int yp=0)
{
x=xp;
y=yp;
}
//const成员函数内无法修改类的数据成员,否者编译器会报错
void print() const
{
x=5;//试图修改x 将引发编译器报错
cout<<"x:"<<x<<"y:"<<y<<endl;
}
};

编译器报错:

c++进阶四(const成员函数与const成员变量)_const成员函数


即const成员函数不能修改类中的变量

2,const成员函数内,不能调用其他非const成员函数

class point
{
//没有指出private函数public的话默认是privzte
int x;
int y;
public:
point(int xp=0,int yp=0)
{
x=xp;
y=yp;
}
void print2()
{
cout<<"x:"<<x<<"y:"<<y<<endl;
}
//const成员函数内无法修改类的数据成员,否者编译器会报错
void print() const
{
//x=5;//试图修改成员变量 将引发编译器报错
print2(); //试图调用非const成员 引发编译器报错
cout<<"x:"<<x<<"y:"<<y<<endl;
}
};

c++进阶四(const成员函数与const成员变量)_const成员函数_02