Use this polymorphic technique to cheat the compiler and expose private information:
See the code below.class A{public: virtual void f2() { printf("in A::f2
"); }};class B: public A{private: void f2(int j) { printf("in B::f2
"); } };int main(){ B b; A *a = &b; a->f2(10); }
Because a->f2 is virtual and called run time, using it calls f2 of B. F2 is private in B, but still you’re still able to call it. That’s the magic.