Это хорошая практика, чтобы сделать геттеры и сеттеры встроенными? - PullRequest
69 голосов
/ 10 июня 2010
public:
     inline int GetValue() const {
          return m_nValue;
     }
     inline void SetValue(int nNewValue) {
          this -> m_nValue = nNewValue;
     }

Вкл. Изучите C ++ , они сказали, что будет работать быстрее.Итак, я подумал, что было бы здорово использовать на геттеры и сеттеры.Но, может быть, у него есть недостатки?

Ответы [ 11 ]

0 голосов
/ 11 июня 2010

Должен сказать, у меня нет сильного отвращения к этой практике, которое, похоже, есть у других в этой теме.Я согласен с тем, что прирост производительности от встраивания незначителен во всех случаях, кроме наиболее интенсивно используемых.(И да, я сталкивался с такими случаями на практике.) Там, где я делаю этот тип встраивания, я делаю это для удобства и, как правило, только для однострочных.В большинстве моих случаев использования необходимость избегать перекомпиляции на стороне клиента, если я когда-либо изменю их, просто не так уж сильна.

Да, вы можете отбросить inline, как это подразумевает размещениереализации.

Кроме того, я немного удивлен страстью против доступа.Вы вряд ли можете чихнуть в классе на любом языке ОО, не снося некоторые из них, и они, в конце концов, являются допустимым методом абстрагирования реализации от интерфейса, поэтому немного мазохистски утверждать, что это плохая практика ОО. - это хороший совет, чтобы не писать аксессоры без разбора, но я также советую вам не увлекаться рвением уничтожать их.

Примите это, пуристы.: -)

...