Методы С++ позволяют квалификатору const
указывать, что этот метод не изменен. Но что это значит? Например. если переменные экземпляра являются указателями, означает ли это, что указатели не изменяются или также не изменяется память, на которую они указывают?
Конкретно, вот минимальный примерный класс
class myclass {
int * data;
myclass() {
data = new int[10];
}
~myclass() {
delete [] data;
}
void set(const int index) const {
data[index] = 1;
}
};
Соответствует ли метод set
как const
? Он не меняет переменную-член data
, но она действительно меняет содержимое массива.