c++的自动注册
构 注册位置{
用 BB=无映针<串,动作基>;单 BB 工;
};
元<类 T>构 自注:公 注册位置{
静 极 注册(){中 BB::注一<T>();}
单 极 呀=注册();
};
为啥用注册(),这是延迟实现,避免T还未构建.否则直接用BB::注一<T>();就行了.
上面是核心,至于注册实现,可以自己选择实现,这里用的是注一接口.
我们的自动注册,用的是串来注册,
#define 静表示(S) \
静 串 表示(){呀;中 S;}
要求,每个动作基的子类都有静的表示方法,这里面有个呀;来自动注册.避免了每次的手写.只需要手写一个S就行了.如下为一个子类示例:
构 仅三空:公 动作基,公 自注<仅三空>{//加上自注
极 要要(串&行){//动作基必须实现的虚函数
静 串分 d;d.切换(行,' ');
中(d.临.大小()==3);
//实现,可完成你需要的各种任务.
}
静表示("仅三空");//这里注册
};
使用类中这样:
类 过滤行:文件名行处理,公 注册位置{
...
};
通过这里的注册位置,就可以通过外部串访问注册中心,达到根据命令行需求而变,而完成不同的动作的效果!
下一篇加强版
浙公网安备 33010602011771号