title: c++ Inheriting private copy constructor: how doesn't this yield a compile time error?
body: <p>In C++, if we have this class</p>
  
  <pre><code>class Uncopyable{
  public:
      Uncopyable(){}
      ~Uncopyable(){}
  private:
      Uncopyable(const Uncopyable&amp;);
      Uncopyable&amp; operator=(const Uncopyable&amp;);
  };
  </code></pre>
  
  <p>and then we have a derived class</p>
  
  <pre><code>class Dervied: private Uncopyable{
  };
  </code></pre>
  
  <p>My question is: why won't this generate a compile time error when the compiler generates the default copy constructor and assignment operators in the derived class ? Won't the generated code try to access base class private members ?</p>