https://github.com/apache/mesos/blob/master/include/mesos/module.hpp#L56
mesos模块都来自struct ModuleBase,当创建不同的模块实例时,它们使用模板。 我很好奇,为什么他们更喜欢模板而不是遗产?这是因为运行时间的速度吗?
我也注意到C ++中的这么多开源项目更喜欢使用大量的模板,导致代码难以阅读和理解,为什么?
答案 0 :(得分:1)
似乎有一些一般的讨论可能对以后的人有所帮助:
When should I use templates instead of inheritance, and vice versa?
When to use template vs inheritance
http://www.gotw.ca/publications/mill06.htm
http://people.cs.uchicago.edu/~jacobm/pubs/templates.html
模板比继承更快,因为它选择了在编译时而不是在运行时调用的正确函数。
它们具有非常相似的功能,它们都支持接口和多态性。