title: Derived operator< receiving Base object as parameter
body: <p>I know that a derived class "is a" base class, therefore you can always pass a derived object to a base member function. Now, I was wondering about the reverse situation specifically with comparing operators (base class is not abstract and has objects). </p>
  
  <p>Lets say I have:</p>
  
  <pre><code>class Base:
  {
      public:
          Base(int m1, string m2);
          virtual ~Base();
          int GetM1()const;
          string GetM2()const;
  
          virtual bool operator&lt;(const Base&amp; base)const;
  
      private:
          int m1;
          string m2;
  };
  </code></pre>
  
  <p>And I want to do something like this:</p>
  
  <pre><code>class Derived: public Base
  {
      public:
      Derived(string member);
      ~Derived();
  
      virtual bool operator&lt;(const Base&amp; base)const; // is this possible(without cast)???
  
  };
  </code></pre>
  
  <p>Thanks</p>