Возвращает ссылку на приватного участника.
Во многих случаях это желательно, но следует позаботиться о них.
ИМО, как правило, возвращатькопия внутреннего объекта, который не является целочисленным типом, из соображений общей производительности.Да, я знаю, преждевременная оптимизация не очень хороша, но на самом деле это не оптимизация, это просто хорошая практика производительности, которая позволяет вызывающей стороне определять влияние на производительность;если ему нужна копия, она может просто не объявлять переменную, которой она присваивается, в качестве ссылки.
Здесь я использую 2 общих правила:
1) Если вы неЕсли вы не хотите, чтобы вызывающая сторона могла изменять закрытый объект напрямую, объявите возвращаемое значение как константную ссылку:
inline const string& GetLabel() const{ return m_Label; }
2) Вызывающая сторона никогда не должна хранить ссылку, возвращенную из метода класса, она должнаиспользоваться только локально, если родительский объект гарантированно находится в области видимости.
Если по какой-то причине вам требуется, чтобы вызывающие объекты могли хранить ссылку на ваши внутренние объекты, используйте вместо этого интеллектуальные указатели.