Если функция представителя может быть сделана статической, то она должна быть сделана статической, в противном случае, если она может быть сделана const, то она должна быть сделана const
Если представитель функция может быть сделана статической, то она должна быть сделана статической, в противном случае, если она может быть выполнена const то она должна быть сделана const.
const
Представители функции не могут изменять представителей данных класса. static
Представителю функция не может изменять нестатические представителей данных класса. Если функции представителя не нужно изменять нестатические представителей данных класса, ограничьте их доступ к данным, объявив функции представителя как const
или static
. Такая декларация четко выражает и применяет намерение проекта. То есть, если вы непреднамеренно пытаетесь изменить представитель данных через const
member function, компилятор ловит ошибку. Без const
объявления, такого рода непреднамеренная ошибка может привести к ошибкам, которые трудно найти или отладить.
Проверка выполняется в следующем порядке:
Проверка сначала проверяет, обращается ли функция-член класса к представителю данных класса. Функции, которые не имеют доступа к представителям данных, могут быть объявлены статическими.
Затем проверка проверяет функции, которые получают доступ к представителям данных, чтобы определить, изменяет ли функция какой-либо из представителей данных. Функции, которые не изменяют представители данных, могут быть объявлены const.
Нарушение функции const member означает, что функция даже не обращается к представителю данных класса и может быть объявлена статической.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Классы |
Категория: Требуемая |