Шаблоны для сеттеров и геттеров

Я не знаком с шаблонами, но мне интересно, можно ли их использовать для методов установки и получения. Например, в этой ситуации:

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);

Я имею в виду, должны ли геттеры всегда быть константными, а сеттеры должны принимать в качестве аргумента ссылку на объект, а не копировать его, что, вероятно, будет немного медленнее?

8
задан Overpain 16 November 2010 в 14:23
поделиться