I have a question about permanent objects. In the following program:
class const_check{ int a; public: const_check(int i); void print() const; void print2(); }; const_check::const_check(int i):a(i) {} void const_check::print() const { int a=19; cout<<"The value in a is:"<<a; } void const_check::print2() { int a=10; cout<<"The value in a is:"<<a; } int main(){ const_check b(5); const const_check c(6); b.print2(); c.print(); }
void print() is a constant member function of the const_check class, so according to the definition of constants, any attempt to change int a should lead to an error, but the program works fine for me. I think I have some confusion here, can someone tell me why the compiler doesn't put this as an error?
source share