我如何定义像下面的C#示例那样的泛型/模板化类

我如何定义像下面的C#示例那样的泛型/模板化类,c#,c++,templates,C#,C++,Templates,在C#中: 公共密封类状态机 我想写一个C++等价的。 这样: public sealed class StateMachine<TState, TTrigger> 模板 类状态机 { //... }; 像这样: public sealed class StateMachine<TState, TTrigger> 模板 类状态机 { //... }; 您可以使用Stuart和Xeo提出的方法,如果您想将类密封在这里,这就解释了如何做到这一点 编辑:甚至更好。您可以使

在C#中:

公共密封类状态机
<>我想写一个C++等价的。

这样:

public sealed class StateMachine<TState, TTrigger>
模板
类状态机
{
//...
};
像这样:

public sealed class StateMachine<TState, TTrigger>
模板
类状态机
{
//...
};

您可以使用Stuart和Xeo提出的方法,如果您想将类密封在这里,这就解释了如何做到这一点


编辑:甚至更好。

您可以使用Stuart和Xeo提出的方法,如果您想将类密封在这里,这就解释了如何做到这一点

编辑:更好。

对如何创建模板类有很好的解释。例如:

template <typename TState, typename TTrigger>
class StateMachine
{
    //...
};
//函数模板
#包括
使用名称空间std;
模板
T GetMax(T a,T b){
T结果;
结果=(a>b)?a:b;
返回(结果);
}
int main(){
int i=5,j=6,k;
长l=10,m=5,n;
k=GetMax(i,j);
n=最大值(l,m);
cout对如何创建模板类有很好的解释。示例:

template <typename TState, typename TTrigger>
class StateMachine
{
    //...
};
//函数模板
#包括
使用名称空间std;
模板
T GetMax(T a,T b){
T结果;
结果=(a>b)?a:b;
返回(结果);
}
int main(){
int i=5,j=6,k;
长l=10,m=5,n;
k=GetMax(i,j);
n=最大值(l,m);

你不想改写吗?你想改写吗