C++中模板类和模板方法的两层抽象
规律:
1、模板类+模板方法的抽象
2、模板方法的的抽象
我们为啥要介绍这个呢?需求点是,给不同的类型,分配唯一的id。
ok这里有介绍写使用模板方法的方法,保持id的唯一性:
规律是,这里的ID,共享的;但是由于模板方法传入不同的类型,使得inner自增。
再深入一层,如果是模板类:
可以看到:当不用的模板类的ID是不共享的;然后同一个模板类,走上面第一个规则,共享ID,实现inner自增。
好像突然就悟了:
模板类,模板方法,带入不同的类型,就是不同的。
如果XFamily不是模板类,则ID共享;
如果XFamily是模板类,则ID不共享;
同样:
如果inner不是模板方法,则inner共享;
如果inner是模板方法,则inner不共享;啥叫不共享其实,你不是属于同一个世界,你的类型由传入的类型决定。