1 常量对象:对象前加const
class Demo{
int value;
public:
void setValue(){}
};
const Demo obj; //常量对象
2 常量成员函数:成员函数后加const
执行期间不应修改其作用的对象
不能调用同类非常量成员函数(除静态)
不能修改成员变量(除静态)
class Sample{
public:
int value;
void GetValue() const;
void func(){};
Sample(){}
};
void Sample::GetValue() const{
//value = 0; 报错
//func(); 报错
}
int main(){
const Sample s;
//s.value = 100; 报错
//s.func(); 报错
s.GetValue(); //ok
return 0;
}
两成员函数名字和参数完全一样,一个有const一个没有,算重载
3 常引用
引用前面加const
不能通过常引用修改其指向的对象