title: Inherited member is not allowed, why?
body: <p>The basic issue boils down to this:</p>
  
  <pre><code>// header
  class Calculator 
  {
  public:
      virtual int calculate(int a, int b);
  };
  
  class Adder : public Calculator 
  {
  
  };
  
  // class file
  int Adder::calculate(int a, int b) {return a + b;} // gives error
  </code></pre>
  
  <p>Why am I not allowed to do that?</p>
  
  <p>I would've assumed that since <code>Adder</code> inherits <code>Calculator</code>'s members, I can just define their bodies as if they were its own, but apparently that isn't possible...</p>
  
  <p>I've seen other answers in which they simply have to write the member definition again in the child class, but that to me seems like an awful lot of lines of code wasted repeating the same text over and over, so the question is... </p>
  
  <p>Why can't I do it without overriding it in the child class's definition?</p>
  
  <p>Also, please note that this isn't a question as to how to fix an error, it's a question about the mechanics of C++, and why something is or is not permitted to do</p>