error: out-of-line-definition von "test" nicht mit jeder Erklärung, die in 'B<dim>'

Ich habe ein kleines problem, das bringt mich um!! Ich weiß nicht, was scheint falsch zu sein mit dem code unten. Ich sollte in der Lage sein zu implementieren, die Funktion, die übernommen wird aus der super-Klasse, sollte ich nicht? aber ich bekomme 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;
}

Ich bin auf einem Mac mit clang (Apple LLVM version 5.1).

Schreibe einen Kommentar