c++的自动注册

构 注册位置{
    用 BB=无映针<,动作基>;单 BB 工;
};<类 T>构 自注:公 注册位置{
    静 极 注册(){中 BB::注一<T>();}
    单 极 呀=注册();
};

为啥用注册(),这是延迟实现,避免T还未构建.否则直接用BB::注一<T>();就行了.
上面是核心,至于注册实现,可以自己选择实现,这里用的是注一接口.
我们的自动注册,用的是来注册,

#define 静表示(S) \
    静 串 表示(){呀;中 S;}

要求,每个动作基的子类都有静的表示方法,这里面有个呀;自动注册.避免了每次的手写.只需要手写一个S就行了.如下为一个子类示例:

构 仅三空:公 动作基,公 自注<仅三空>{//加上自注
    极 要要(&){//动作基必须实现的虚函数
        静 串分 d;d.切换(,' ');(d..大小()==3);
        //实现,可完成你需要的各种任务.
    }
    静表示("仅三空");//这里注册
};

使用类中这样:

类 过滤行:文件名行处理,公 注册位置{
    ...
};

通过这里的注册位置,就可以通过外部串访问注册中心,达到根据命令行需求而变,而完成不同的动作的效果!
下一篇加强版

posted @ 2022-02-03 11:59  zjh6  阅读(39)  评论(0)    收藏  举报  来源