【问题标题】:C++ template function inside a non-template class [duplicate]非模板类中的C ++模板函数[重复]
【发布时间】:2016-05-23 05:15:54
【问题描述】:

我希望开始在我的 c++ 类代码中添加模板,但我遇到了一种我以前从未经历过的情况。基本上我有一个非模板类,但类中只有 1 个函数需要模板化。

class example
{
 public:
 example();
 ~example();
 <template T> templatefunction(T);
 nontemplatefunction(string x);
};

这可能吗?如果是这样,这是一个常见的解决方案还是我完全错误地查看模板?

【问题讨论】:

  • 没关系。
  • 如果你修正了语法就可以了。

标签: c++ templates


【解决方案1】:

正如人们在 cmets 中指出的那样,这样做没有问题。

需要注意的一个方面是在哪里放置方法templatefunction 的定义。暂时(参见ISO cpp FAQ),您应该考虑将它放在头文件中,这与您可能对其他方法的定义所做的不同。因此你会有example.hpp:

class example
{
 public:
 example();
 ~example();
 template<typename T> void templatefunction(T);
 void nontemplatefunction(string x);
};

template<typename T> void example::templatefunction(T)
{

}

然后example.cpp:

example::example(){}

void example::nontemplatefunction(string x)
{

}

【讨论】:

    猜你喜欢
    • 2020-12-16
    • 2017-10-26
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    相关资源
    最近更新 更多