C++ - 如何在不多次定义模板的情况下实现模板类的多个功能?

标签 c++ templates

我想知道是否可以在不多次定义模板的情况下实现一个模板类的多个功能。

声明:

template <class T>
class Test{
    private:
    T field;
    public:
    Test(T value);
    T& get();
    void set(T value);
};

实现:

template <class T> Test<T>::Test(T value){ set(value); }
template <class T> T& Test<T>::get(){ return field; }
template <class T> void Test<T>::set(T value){ field = value; }

正在复制 template <class T>多次有点容易出错。我想知道我是否可以做这样的事情:

template <class T>{
Test<T>::Test(T value){ set(value); }
T& Test<T>::get(){ return field; }
void Test<T>::set(T value){ field = value; }
}

如有任何帮助,我们将不胜感激。

最佳答案

如果您不将其与类分开,则不必指定 template<class T>每次。

关于C++ - 如何在不多次定义模板的情况下实现模板类的多个功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14670423/

相关文章:

C++ 模板图灵完备?

c++ - 使用特化测试类中值的存在

c++ - 使用 clang-format 保留用作函数中间参数的短 lambda

c++ - 带空尖括号 <> 的模板函数调用

c++ - 模板查询,访问私有(private)成员

c++ - 如何比较作为模板类传递的字符串?

c++ - 哪个库用于视频和音频录制?

c++ - 比较模板中的不同类型

c++ - 在 Xcode 中的特定行显示运行时错误消息

c++ - 转换 Eigen 矩阵类型时,错误 : expected primary-expression before ‘float’