воскресенье, 14 ноября 2010 г.

34. Какие операции не рекомендуется перегружать как методы класса? Почему?

Даже и не знаю. Страуструп рекомендует перегружать как методы класса только те операторы, которым требуется изменить защищенные члены. Например:
class A{
  int x;
public:
  A& operator+=(int b){x+=b;} //Этому оператор изменяет защищенный член
}

//А этому не нужно менять, и он может воспользоваться оператором +=
A operator+(A& a, int b){A res = a; return res+=b;}

1 комментарий:

  1. Я бы добавил ->. Все слишком сильно привыкли полагаться на её стандартное значение. Код, где этот оператор применяется не к указателям, а к объектам классов, будет вызывать много подсознательных недопониманий.

    ОтветитьУдалить

Можно использовать теги <b>, <i>