#include <iostream>
using namespace std;
class test {
int a;
mutable int b;
void foo( ) const { a = 14 ; } // blad kompilacji, metoda nie moze zmieniac nic w klasie
void boo( ) { a = 14 ; } // ok
void bar( ) const { b = 14 ; } // ok, pole b jest mutable
} ;
int main( ) {
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgdGVzdCB7CglpbnQgYTsKCW11dGFibGUgaW50IGI7CgkKCXZvaWQgZm9vKCkgY29uc3QgeyBhID0gMTQ7IH0gLy8gYmxhZCBrb21waWxhY2ppLCBtZXRvZGEgbmllIG1vemUgem1pZW5pYWMgbmljIHcga2xhc2llCgkKCXZvaWQgYm9vKCkgeyBhID0gMTQ7IH0gLy8gb2sKCQoJdm9pZCBiYXIoKSBjb25zdCB7IGIgPSAxNDsgfSAvLyBvaywgcG9sZSBiIGplc3QgbXV0YWJsZQp9OwoKCmludCBtYWluKCkgewoJCglyZXR1cm4gMDsKfQ==
compilation info
prog.cpp: In member function 'void test::foo() const':
prog.cpp:8:23: error: assignment of member 'test::a' in read-only object
void foo() const { a = 14; } // blad kompilacji, metoda nie moze zmieniac nic w klasie
^
stdout