Здравствуйте, Дмитро, Вы писали:
Д>Разве во второй реализации члены-данные m_value1, m_value2 и прочее не относятся к состоянию объекта? Что тогда к состоянию объекта этого класса относится?
Состояние объекта — это то, что ожидает получить клиент класса.
void f(Settings *settings) {
int v1 = settings->GetValue1();
int v2 = settings->GetValue1();
// v1 == v2!!!
}
Константностью метода GetValue1() автор класса Settings подчеркивает, что если не вызываются неконстантные методы класса, то последовательные вызовы GetValue1() будут давать одно и то же значение, которое с точки зрения клиента является частью состояния класса.