模板方法和模板类C++

rub*_*buc 5 c++ templates class-method

类成员函数可以是模板函数,还是必须是静态类函数.基本上可以根据需要在技术上实例化类和功能吗?

使用模板函数作为模板类的成员有什么限制?两者都可以同时完成,还是两者都是?

Jon*_*len 9

您可以拥有模板类的模板成员函数,如下所示:

template <typename T>
class Foo {
public:
    template <typename U>
    void bar(const T& t, const U& u);
};

template <typename T>
template <typename U>
void Foo<T>::bar(const T& t, const U& u) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)


cra*_*jul 6

类方法可以是模板.唯一的限制是它们不能是虚拟的.

编辑:

更完整的是,构造函数也可以是模板

class X
{

    template<typename T>
    X( T t )
    {

    }

};
Run Code Online (Sandbox Code Playgroud)

但是,当然,应该只有一个非模板析构函数