how to implement casting to a private base class in C++
问题 How to implement casting to a private base class in C++? I don't want to use hacks such as adding a friend etc. Defining public casting operator does not work. EDIT : For example I have: class A { //base class } class AX : private A { //a child } class AY : private A { //another specialized child } class B { //base class void do (A a) {//do } } class BX : private B { //a child void do (AX a) { B::do( static_cast <A> (a) ); } } class BY : private B { //another specialized child void do (AY a)