编译器如何确保const成员函数中没有更改数据成员状态?(用C++或java编写)

Sum*_*man 5 c++ const

C++或Java编译器如何确保在const成员函数中没有更改任何成员变量状态(可变为异常).

编译器是否会将代码放在不可写的代码段或类似的东西中?

Jam*_*nze 3

编译器不确定。它不能,因为语言中没有规则说成员变量状态不能在const成员函数中更改。唯一的规则是您不能通过指针更改状态this(不丢弃const)。