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).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
Müssen Sie noch definieren der Funktion deklariert die Klasse Erklärung.
B
bietet es eine eigene Implementierung. " ich möchte nicht wiederholen, die Unabhängigkeitserklärung wieder!' Zu schreiben Gültiger c++ - code, Sie müssen!override
. Beantworter wahrscheinlich vergessen.Das problem ist, dass Sie versuchen, zu definieren, Funktionstest außerhalb der Klassendefinition der Klasse B müssen Sie deklarieren es auf den ersten in der Klasse