title: C++ Abstract class can't have a method with a parameter of that class
body: <p>I created this .h file</p>
  
  <pre><code>#pragma once
  
  namespace Core
  {
      class IComparableObject
      {
      public:
              virtual int CompareTo(IComparableObject obj)=0;
      };
  }
  </code></pre>
  
  <p>But compiler doesn't like <strong>IComparableObject obj</strong> param if the method is virtual pure, while</p>
  
  <pre><code>virtual int CompareTo(IComparableObject obj) {}
  </code></pre>
  
  <p>It's ok, however I want it as virtual pure. How can I manage to do it?  Is it possible?</p>