Mein Problem, stark gekürzt:
Gibt beim Kompilieren:
Warum ist blub damit nicht überladen? Wenn ich für das T stur int* einsetze kommt das selbe heraus.
mfg benediktibk
PS: Vor Lauter Sternchen und Kaufmanns-Und war es gar nicht so leicht einen gültigen Aufruf von blub zusammenzubekommen.
Code:
#include <stdio.h>
template<class T>
class Foo
{
public:
virtual void blub(const T &value) const = 0;
};
class Bar : public Foo<int*>
{
public:
virtual void blub(const int* &value) const
{
printf("\n%i\n", *value);
}
};
int main(int argc, char **argv)
{
Bar bar;
const int *one = new int;
bar.blub(one);
return 0;
}
Gibt beim Kompilieren:
Code:
gcc main.cpp
main.cpp: In Funktion »int main(int, char**)«:
main.cpp:21:7: Fehler: Variable »bar« kann nicht als vom abstrakten Typ »Bar« deklariert werden
main.cpp:11:1: Anmerkung: because the following virtual functions are pure within »Bar«:
main.cpp:7:18: Anmerkung: void Foo<T>::blub(const T&) const [with T = int*]
make: *** [all] Fehler 1
Warum ist blub damit nicht überladen? Wenn ich für das T stur int* einsetze kommt das selbe heraus.
mfg benediktibk
PS: Vor Lauter Sternchen und Kaufmanns-Und war es gar nicht so leicht einen gültigen Aufruf von blub zusammenzubekommen.

Zuletzt bearbeitet: