Итак, после прочтения некоторых вопросов и ответов SO, я до сих пор не понимаю, зачем использовать
friend bool operator==( BaseClass const &left, BaseClass const &right )
вместо
bool operator==( BaseClass const &right )
прямо сейчас у меня есть что-то вроде http://pastebin.com/pKsTabC0 (исправлено) - и, похоже, он работает нормально. Но, может быть, я что-то упустил? Любые предложения?
Обновление 1
Хорошо, я изменил источник, чтобы он работал правильно http://ideone.com/fIAmB. Удалены ненужные виртуальные и добавленные константы. Тем не менее я не понимаю, зачем использовать друзей...