标签: c++ inheritance c++11 template-classes
我正在浏览一些代码,我发现了类似的内容:
class GarbageCollectorProcess : public process::Process<GarbageCollectorProcess>
我想知道这是否有效。如果是,那么这不应该导致某种自定义循环,因为我们使用另一个依赖于GarbageCollectorProcess定义的类来定义GarbageCollectorProcess吗?
答案 0 :(得分:5)
&#34;我想知道这是否有效。&#34;
是的,这是有效的,也是一种非常常见的模式,称为奇怪的重复模板模式,或简称CRTP。
它曾用于实现静态多态性。
&#34;如果是,不应该导致某种自定义循环,因为我们使用另一个依赖于GarbageCollectorProcess定义的类来定义GarbageCollectorProcess?&#34; < / em>的
不,没有自定义循环。模板类只实例化一次。
答案 1 :(得分:1)
这是有效的事情。 这就是CRTP工作的方式。