Is returning a reference for accessor idiomatic?

В C ++ можно создать средство доступа, которое возвращает ссылку на частное поле.

class Cls {
    private:
        int _attr;
    public:
        int& attr() { return _attr; }
};

таким образом, чтобы к атрибуту можно было получить доступ как таковой:

// set
c.attr() = 4;

// get
cout << c.attr() << endl;

Этот стиль средства доступа идиоматичен / хорош практика? Будет ли удивлен средний программист на C ++, увидев такой стиль аксессуаров? (Подсказка: я был удивлен, когда впервые увидел это, но стиль мне понравился)

12
задан Lie Ryan 9 March 2011 в 17:46
поделиться