getHoge(),setHoge()のような関数(アクセサ)を継承元で書かないとアクセスできないよ。

private継承、実装の継承というのは、基底クラスで定義された関数など「実装」のみを継承し、
インターフェイスや性格については基底クラスと同じものを持たなくて良い
=基底クラスのオブジェクトではあれができたから継承先でも出来るだろうという期待が出来ない継承のことかな。
逆にpublic継承というのは、DerivedクラスはBaseクラスの一種であるとみなして操作できなければならなくて、
BaseがCry()と言う関数を持ってたらDerivedも持っていなくてはいけないし(鳴き声は違うにしても)同じような動作をしなくてはいけない。

…という話がEffective C++に詳しく書いてあるので読んでおこう。