Should I pointer-cast from a private derived class to its base class?
<p>I found this from C++FAQ</p>

<blockquote>
  <p>Generally, No.</p>
  
  <p>From a member function or friend of a
  privately derived class, the
  relationship to the base class is
  known, and the upward conversion from
  PrivatelyDer* to Base* (or
  PrivatelyDer&amp; to Base&amp;) is safe; no
  cast is needed or recommended.</p>
  
  <p>However users of PrivatelyDer should
  avoid this unsafe conversion, since it
  is based on a private decision of
  PrivatelyDer, and is subject to change
  without notice.</p>
</blockquote>

<p>How to understand the above words? I don't think the explanation is correct or accurate.</p>

<p>I have a code like this </p>

<pre><code>class A{
};

class B: private A{
};

int main(){

    B *b = new B();
    A *a = new A();

    a = b;                    //wrong
    a = (A*)b;            //right

}
</code></pre>
