我真的对模板感到困惑。如果我有一个模板类并将其作为参数传递给函数,请考虑以下内容:
template <class T> class Class
{
};
所以我想创建一个以 Class 作为参数的函数,那么为什么以下内容还不够:
void func(Class<T> obj)
{
}
我必须这样做:
template <class T> void func(Class<T> obj)
{
}
另外,假设我采用 2 个模板类的 2 个参数,请考虑以下内容:
template <class T> class ClassA
{
};
template <class T> class ClassB
{
};
我有一个函数,它接受 2 个 ClassA 和 ClassB 类型的参数,写作之间有什么区别:
template <class T> void func(ClassA<T> obj1, ClassB<T> obj2)
{
}
至
template <class T, class ClassB> void func(ClassA<T> obj1, ClassB obj2)
{
}
因为两者都有效。