Является ли возврат ссылок на переменные-члены плохой практикой?

Как сказано ниже, лучше, чем иметь first / second в качестве открытых членов. Я считаю, что это почти так же плохо. Если вы даете возможность получить доступ к частной переменной вне класса, в чем тогда смысл? Разве функции не должны быть

T First(); void(or T) First(const T&)

Пример:

// Example 17-3(b): Proper encapsulation, initially with inline accessors. Later
// in life, these might grow into nontrivial functions if needed; if not, then not.
//
template<class T, class U>
class Couple {
  Couple()           : deleted_(false) { }
  T& First()         { return first_; }
  U& Second()        { return second_; }
  void MarkDeleted() { deleted_ = true; }
  bool IsDeleted()   { return deleted_; }

private:
 T first_;
 U second_;
 bool deleted_;
};
47
задан Cœur 17 April 2017 в 05:17
поделиться