class A{
int x;
public:
A& operator+=(int b){x+=b;} //Этому оператор изменяет защищенный член
}
//А этому не нужно менять, и он может воспользоваться оператором +=
A operator+(A& a, int b){A res = a; return res+=b;}
воскресенье, 14 ноября 2010 г.
34. Какие операции не рекомендуется перегружать как методы класса? Почему?
Даже и не знаю. Страуструп рекомендует перегружать как методы класса только те операторы, которым требуется изменить защищенные члены. Например:
Подписаться на:
Комментарии к сообщению (Atom)
Я бы добавил ->. Все слишком сильно привыкли полагаться на её стандартное значение. Код, где этот оператор применяется не к указателям, а к объектам классов, будет вызывать много подсознательных недопониманий.
ОтветитьУдалить