#include <常用>
元<类 M>构 A{
空 f(){M::g();}
};

构 C{
单 串 首,尾;
静 空 切换(串&a,串&b){首=a;尾=b;}
静 空 g(){
打印(首,尾);
}
};

空 ff(){
串 a{"ab"},b{"cde"};
C c;c.切换(a,b);
A<C>e;e.f();
}
空 gg(){
串 a{"啊啊"},b{"哈哈"};
C c;c.切换(a,b);
A<C>e;e.f();
}

空 主(){
ff();gg();
}

这里的​​多态​​​是​​两个​​​层级.
1,是​​​A<C>​​​中​​C​​​模板的多态!
2,是​​​C.切换(a,b)​​​引起的​​多态​​​!
​​​静态构​​​是可以实现​​静态和动态​​​两种层级的​​多态​​​.
当然,上面只是针对​​​单线程​​.

如果是​​多线程​​​,可以通过给​​静态类​​​加上​​数量与类型​​​来凭空区别​​不同类​​.如:

元<整 I,类 T>构 C{
...内容不变...
};//可以借助`整数I,T类型`实现`静成员`的唯一性.

这样,就不是同一个​​静态构​​​在​​单线程​​​的不同时刻工作,而是​​多线程​​​可用​​不同静态构​​​单独的工作,因而是非常不错的.相当于前者是​​单线程版​​​.后者是​​多线程版​​.