首页 > 学院 > 开发设计 > 正文

CRTP 奇异递归模板模式

2019-11-06 07:47:12
字体:
来源:转载
供稿:网友
#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> 是不同的类, 好像没什么用处
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表