Does an inherited function not count as an implementation?
<p>I have a function defined in a superclass, InteractorStyle. Then I have another class that requires that function to be implemented (pure virtual), PointSelector. Then a subclass of PointSelector, PointSelector2D, is instantiated. The compiler complains that I can't instantiate an abstract class because MyFunction() is not implemented. Why doesn't the function that gets inherited from InteractorStyle count as this implementation?</p>

<pre><code>#include &lt;iostream&gt;

// I can't change these:
class InteractorStyle
{
  void MyFunction(){}
};

class PointSelector
{
  virtual void MyFunction() = 0;
};

class PointSelector2D : public InteractorStyle, public PointSelector
{

};


int main()
{
  PointSelector2D a;
  return 0;
}
</code></pre>
