Call a Private Method of a Class

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.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: