2
我想创建一个模板类foo,并根据foo的模板类型使其成员函数test()中的一个成为函数。 M个第一尝试是包括在头文件中定义FOO代码:C++中模板类的成员函数的专门化
template<typename Type>
class foo
{
foo()
~foo()
test()
};
template<>
foo<float>::test()
{ code ... };
的问题是,如果我编译和使用该标题链接多个文件,我得到多重定义的错误。
我也尝试在头文件中声明专门化,所以编译器知道它不应该生成模板化代码。然后我把专门的定义放在一个单独的C++文件中进行编译。标题然后看起来像:
template<typename Type>
class foo
{
foo()
~foo()
test()
};
template<>
foo<float>::test();
但是,我得到了一个未定义的引用错误。
我该如何组织专业会员功能的声明和定义?
谢谢。我发现在第二种情况下我的错误来自未定义析构函数。 – vkubicki 2014-11-05 15:31:25