关于常成员函数
“当一个函数被定义为const时,这个函数就不能对数据成员进行修改了。一个const成员函数也不能调用一个非const函数,否则就可能通过这个非const函数间接修改数据成员了。”
对于“一个const成员函数也不能调用一个非const函数,否则就可能通过这个非const函数间接修改数据成员了。”这句话,可以举例说明下吗?
[解决办法]
class A
{
int data;
void func1() const
{
func2(); //错误
};
void func2()
{
data = 0;
}
}
很明显func1被声明为const的意思是指它不应该修改自己。但是如果让它调func2,func2里是改了自己的,这就违背了func1的const声明。所以被const修饰的方法不能调非const方法。