const允许你指定一个语义约束(也就是指定一个“不该被改动”的对象),而编译器会强制实施这项约束。它允许你告诉编译器和其他程序员某值应该保持不变。编程时如果需要保持某个值不变, 你就应该用const, 这样编译器就会确保这条约束不被违反。
函数参数加const
如果关键字const出现在星号左边, 表示被指物是常量;
如果出现在星号右边, 表示指针自身是常量;
如果出现在星号的两边, 表示被指物和指针两者都是常量。
函数返回值前加const
类的成员函数后面加const
解决办法是:mutable int num; //在num前加mutable(可变的)