Сколько и какие варианты использования «const» в C++?

На самом деле есть два основных constant варианта использования const const в C++.

Постоянные значения

Если значение имеет c++ форму переменной, члена или cxx параметра, которые не будут constant (или не должны) изменяться non-const в течение своего времени const существования, вы должны constant пометить его как const. Это constants помогает предотвратить мутации cxx объекта. Например, в следующей cpp функции мне не нужно изменять constant переданный экземпляр Student, поэтому const я помечаю его как const.

void PrintStudent(const Student& student) {
  cout << student.GetName();
}

Почему non-const вы это сделали. Намного легче const рассуждать об алгоритме, если cpp вы знаете, что базовые данные cxx не могут измениться. «const» помогает, но constant не гарантирует, что это будет constant достигнуто.

Очевидно, печать cpp данных в cout не требует cpp особых размышлений :)

Пометка метода члена как константного

В предыдущем constants примере я пометил Student const как const. Но как C++ узнал, что constants вызов метода GetName() для c++ ученика не приведет к изменению const объекта? Ответ в том, что constant метод был помечен как const.

class Student {
  public:
    string GetName() const { ... }
};

Маркировка c++ метода "const" делает 2 вещи. В c++ первую очередь он сообщает constants C++, что этот метод не будет const изменять мой объект. Во-вторых, все non-const переменные-члены теперь будут constants обрабатываться так, как если const бы они были помечены как cpp const. Это помогает, но не cpp мешает вам изменять экземпляр constant вашего класса.

Это очень простой cxx пример, но, надеюсь, он поможет c++ ответить на ваши вопросы.

c++

constants

2022-07-15T13:03:55+00:00
Вопросы с похожей тематикой, как у вопроса:

Сколько и какие варианты использования «const» в C++?