我有一个小问题让我很烦!!我不知道下面的代码似乎有什么问题。我应该能够实现从父类(super class)继承的功能,不是吗?但我得到 error: out-of-line definition of 'test' does not match any declaration in 'B<dim>'
template <int dim>
class A
{
public:
virtual double test() const ;
};
template <int dim>
class B : public A <dim>
{
};
template <int dim>
double B<dim>::test () const
{
return 0;
}
我在 Mac 上使用 clang(Apple LLVM 5.1 版)。
最佳答案
尝试
template <int dim>
class B : public A <dim>
{
public:
virtual double test () const;
};
// Function definition
template <int dim>
double B<dim>::test () const
{
return 0;
}
您仍然需要定义声明类声明的函数。
关于c++ - 错误 : out-of-line definition of 'test' does not match any declaration in 'B<dim>' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22579666/