Возможный дубликат:
Почему спецификатор const не работает над элементами указателя на объектах const?
Рассмотрим следующий класс, который имеет указательный элемент int *a
. Метод const constMod
разрешен компилятором, даже если он изменяет данные указателя. Почему компилятор не создает данные указателя const в контексте метода const? Если a
был просто int, нам не разрешили бы его модифицировать в методе const.
class ConstTest
{
public:
ConstTest(int *p): a(p) {}
void constMod() const {
++(*a);
}
int *a;
};
Я использую g++ в linux.