Comparing objects using virtual operator==
===

So, after reading some SO questions and answers, i still doesn't understand why use
    
    friend bool operator==( BaseClass const &left, BaseClass const &right )
instead of
    
    virtual bool operator==( BaseClass const &right )

right now I have something like this http://pastebin.com/pKsTabC0 - and it seems to work fine. But maybe I'm missing something? Any Suggestions?
