一些答案说功能指针,但定义的函数或类怎么样?
像这样:
class foo{ public: bar(int foobar);}
有没有办法获取功能指针,或替换它?
顺便说一句,挂钩不是一个答案,因为它非常具有平台性和危险性.
解决方法 运行时功能“替换”可以通过以下几种技术之一实现:> Polymorphism
>标准图书馆设施,如std::function
>用于转换或分派函数调用的第三方库或平台特定技术.
哪个选项更好是高度依赖于预期用途和目标环境.例如;插件系统可以很好地利用多态性(使用适当的工厂,甚至可能与template method pattern结合使用),而内部函数路由可以使用std :: function.
这些技术不会真正“替换”任何函数,而是可以在运行时设置以根据需要路由函数调用.
注意我专注于问题的C方面(它标记为C和C,但示例代码是C).
总结以上是内存溢出为你收集整理的c – 是否可以在运行时替换方法?全部内容,希望文章能够帮你解决c – 是否可以在运行时替换方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)