A protected member is only visible to itself and derived members. In your case, the declaration of A implies that only public members are accessible, just as if you instantiated an A from any other class. You could, however, simply write this.Howdy, because, due to the derivation chain, Howdy is available from inside of class B.