У меня только что была проблема в одном из моих проектов. Может быть, я неправильно понял концепцию инкапсуляции.
Инкапсуляция защищает переменные-члены от классов, определяя методы getters и setters, теперь я читал, что setters должен быть пустым, но в таком случае, как я могу узнать, действительно ли функция устанавливает значение, переданное аргументом. Например
void setArea(int a) {
if(a>0)
Area = a;
}
Как я могу быть уверен, что аргумент "a" был правильным значением, не лучше было бы определить функцию, подобную этой
bool setArea(int a) {
if(a>0) {
Area = a;
return true;
}
return false;
}
Это нормально? таким образом я могу знать, действительно ли произошло изменение.