Я не знаком с шаблонами, но мне интересно, можно ли их использовать для методов установки и получения. Например, в этой ситуации:
double exmlClass::getA(void) const
{
return a_;
}
void exmlClass::setA(const double& a)
{
a_ = a;
}
double exmlClass::getB(void) const
{
return b_;
}
Как видите, методы почти такие же, за исключением того, что они относятся к другим частным переменным (a_, b_, c_). Есть ли более элегантный способ написать эти функции, или в таких ситуациях обычная практика - делать то же самое? И если это обычное дело для использования шаблонов, я был бы признателен за пример того, как вы могли бы использовать их в приведенном выше коде.
Еще один вопрос, который я хотел бы задать, - как правильно объявлять геттеры и сеттеры. Это хороший стиль программирования?
double getA(void) const;
void setA(const double& a);
double getB(void) const;
void setB(const double& b);
double getC(void) const;
void setC(const double& c);
Я имею в виду, должны ли геттеры всегда быть константными, а сеттеры принимать в качестве аргумента ссылку на объект, а не копировать его, что, вероятно, будет немного медленнее?
3. A lack of essential operators and other methods forces user programs to manipulate the object through the get and set accessor functions.
Если ваши аксессоры являются операторами, это, по крайней мере, подразумевает, что автор статьи не не [обязательно] иметь такую же жалобу. - person Brian Vandenberg   schedule 18.09.2015