title: Can you call a protected method inside a overwrite private virtual?
body: <p>I having a link error (unresolved external symbol) for a protected method (not virtual) being called in a virtual private method that I'm overwriting. The link error is solved by changing protected to public?
  I didn't found any info on that.
  Things goes like this:</p>
  
  <pre><code>class Base{
  protected:
    void Finish();
  
  private:          
    virtual void VOnUpdate()=0;
  };
  
  class Derived: public Base{
  private:          
    virtual void VOnUpdate(){
      Finish();// unresolved Finish() being called
    }
  };
  </code></pre>
  
  <p>With some tests I did I concluded that the problem is also solved if I define Finish() on the header file (where Base is declared). But I don't want nor can do that, as Finish needs a include that includes Base (would cause circular reference). But note this circular thing is not the problem, I created a dummy method just to confirm, it also creates the link error.
  I'm clueless.</p>