CRTP 奇异递归模板模式

来源:互联网 发布:mac怎么输入法 编辑:程序博客网 时间:2024/05/21 14:52
#include <iostream>template <typename Derived>struct Base {    Derived&self()    {        return static_cast<Derived&>(*this);    }    const Derived&self() const    {        return static_cast<const Derived&>(*this);    }public:    void start()    {        self().run();    }};class Derived : public Base<Derived> {    friend Base<Derived>;    void run()    {        std::cout << "Derived run()" << std::endl;    }};
父类调用子类, 不过不同的 Base<Derived> 是不同的类, 好像没什么用处
0 0