break Protected member access
#include "stdafx.h"// Library codetemplate<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()); }};