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

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

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_;
};

Ответы на вопрос(3)

Ваш ответ на вопрос