constメンバー関数はconstメンバー関数のみを呼び出しますか?
class Transmitter{
const static string msg;
mutable int size;
public:
void xmit() const{
size = compute();
cout<<msg;
}
private:
int compute() const{return 5;}
};
string const Transmitter::msg = "beep";
int main(){
Transmitter t;
t.xmit();
return EXIT_SUCCESS;
}
私がcompute()をconstにしないと、コンパイラは文句を言います。これは、constメンバー関数がメンバーを変更することを許可されていないため、constメンバー関数がデータメンバーを「間接的に」変更することを意味するため、非constsへの呼び出しを許可しないためですか?