<...T>
构 A{f(){
        打印("A");
    }
};<...T>
构 B:公 A<T...>{
};<...T>
构 C:公 A<T>...{
};<...T>
构 D:公 A<T,>...{
};
//注意继承方式.<...T>
构 E:公 A<T,T...>...{
};
//注意观察继承

空 主(){
}

<...T>
构 C:公 T...{
    C():T()...,其他...{}
};
//传入模板作为父类.

插件思路与上文所说差不多,主类(小类).

<...T>
构 B{
    向量<A<T...>>;
};//A为角色.
用 C=A<>;
用 E=A<,>;
用 F=B<>;
...

再来一个:

<...T>
构 J:公 T...{
    //略...
};<...T>
构 D:公 J<T>...{
    //略...
};
//继承类.