Перегрузка пробела
Как бы я не ненавидел C, Страуструп всё-таки крутой перец.
Лирическое отступление. Так вышло, что в среду мне надо будет читать лекцию по перегрузке операторов в C++. Сейчас я ищу разную информацию по этой теме. Вообще, help wanted (and appreciated), поэтому если кто-то знает, где есть что-то не самое банальное, то он может смело со мной своими знаниями поделиться.
Как просто перегрузить плюс и минус понятно всем. Вопрос в том, как (и зачем) можно перегрузить операторы вроде −> или []. Интересно, можно ли (и что за это будет) написать
virtual Complex operator + (Complex a, Complex b) {
return Complex (a.Re + b.Re, a.Im + b.Im);
}
или даже
virtual Complex operator + (Complex a, Complex b) = 0;
Конец лирического отступления.
Я нашел очень интересную статью Страуструпа (PDF, 32 KB) про перегрузку оператора пробел и даже оператора отсутствие пробела, чтобы можно было писать
int a, b, t;
t = ab;