C++中如何类外调用私有虚函数

类外使用虚函数指针跳过private的限制,EG:

#include<iostream>
using namespace std;

class B
{
private:
	virtual void func()
	{
		cout << "func" << endl;
	}

};

int main()
{
	B b;
	long *p1 = (long *)&b;
	long *p2 = (long *)(*p1);
	typedef void(*Func)(void);
	Func func = (Func)p2[0];
	func();

	return 0;
}

上述代码个人推测,虚函数的调用不像类中普通成员函数一样需要传入this指针(此观点不一定正确)

发布了123 篇原创文章 · 获赞 31 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq_40794602/article/details/103914942
今日推荐