C如何从基类调用派生类中的方法
发布时间:2020-12-16 03:39:37 所属栏目:百科 来源:网络整理
导读:我想要做的是让Execute()运行并完成它调用Base :: Done()然后调用Derived :: Done().我这样做是因为基类Execute会做一些事情,当它完成时调用Derived :: Done().我希望我能正确解释.有点像任务完成时调用的监听器.我有点坚持Base类将如何调用Derived类. class
我想要做的是让Execute()运行并完成它调用Base :: Done()然后调用Derived :: Done().我这样做是因为基类Execute会做一些事情,当它完成时调用Derived :: Done().我希望我能正确解释.有点像任务完成时调用的监听器.我有点坚持Base类将如何调用Derived类.
class Base { virtual void Done(int code){}; void Execute(); } void Base::Execute() { } class Derived : Base { void Done(int code); void Run(); } Derived::Done(int code) { } void Derived::Run() { Execute(); } 解决方法
您可以使用模板方法:
class Base { public: void Execute() { BaseDone(42); DoDone(42); } private: void BaseDone(int code){}; virtual void DoDone(int) = 0; }; class Derived : Base { public: void Run() { Execute(); } private: void DoDone(int code) { .... } }; 这里,Base控制如何在Execute()中使用自己的派生方法和派生方法,派生类型只需要通过私有虚方法DoDone()实现该实现的一个组件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |