title: Overloaded less then operator returns the opposite boolean value
body: <p>I overloaded the less then operator in my <code>Booking</code> class.</p>
  <pre><code>#include &lt;iostream&gt;
  using namespace std;
  
  class Booking{
  
  private:
  long bookingID;
  
  public:
  Booking(long bookingID) : bookingID(bookingID){}
  long getBookingID(){
      return bookingID;
  }
  
  bool operator&lt;(Booking &amp;b){
      return this-&gt;bookingID&lt;b.getBookingID();
  }
  }
  
  
  
  int main(){
    Booking* b2 = new Booking(11);
    Booking* b1 = new Booking(2);
  
    cout &lt;&lt; (b1&lt;b2) &lt;&lt; endl; // returns 0 (expected 1)
    cout &lt;&lt; (b2&lt;b1) &lt;&lt; endl; // returns 1 (expected 0)
  
    return 0;
  }
  </code></pre>
  <p>What is the issue? Or am I misunderstanding something?</p>