У меня вопрос к постоянным объектам. В следующей программе:
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()
является постоянной функцией-членом класса const_check
, поэтому в соответствии с определением констант любая попытка изменить int a
должна привести к ошибке, но программа у меня работает нормально. Я думаю, что у меня есть некоторая путаница здесь, кто-нибудь может сказать мне, почему компилятор не помечает его как ошибку?