break Protected member access解决方法
break Protected member access
以上代码来自网文,破坏访问 保护成员函数的权限吧,我说的不是很准确。获得保护成员函数地址,然后通过函数指针去访问。。。
------解决方案--------------------
- C/C++ code
#include "stdafx.h" // Library code template<class DerivedT> class Base { private: struct accessor : DerivedT //DerivedT是派生类,其中成员函数do_foo是个保护函数 { static int foo(DerivedT& derived) { int (DerivedT::*fn)() = &accessor::do_foo; //获得父类do_foo的函数地址????? return (derived.*fn)(); //获得地址后,然后用derived这个对象来调用 } }; public: DerivedT& derived() { return static_cast<DerivedT&>(*this); } int foo() { return accessor::foo(derived()); } };
以上代码来自网文,破坏访问 保护成员函数的权限吧,我说的不是很准确。获得保护成员函数地址,然后通过函数指针去访问。。。
------解决方案--------------------