error: out-of-line definition of 'test' does not match any declaration in 'B<dim>'
c++, inheritance, macos, templates, virtual
Solution
Try
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;
}
You still need to define the function declared the class declaration.
Problem
I have a small problem that is killing me!! I don't know what seems to be wrong with the below code. I should be able to implement the function that is inherited from the super class, shouldn't I? but I get `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; } ``` I am on a Mac using clang (Apple LLVM version 5.1).