Frage zu Templates
-
Ich habe mal wieder eine Frage zu Templates:
Beispiel:
template <typename Type> class Zahl { private: Type data; public: void plus(const Zahl &zahl); //Warum geht das? Die Klasse Zahl ist doch ein Template? };Ist es so, dass das "Zahl" in der Klasse für Zahl<Type> steht?
-
pyhax schrieb:
Ist es so, dass das "Zahl" in der Klasse für Zahl<Type> steht?
Ja. Das sind zwar grunsätzlich alles Templates, aber nach dem du die Klasse spezialisiert hast, ist alles was drin ist auch spezialisiert.
-
? Ich habe die Klasse doch gar nicht spezialisiert?
-
pyhax schrieb:
? Ich habe die Klasse doch gar nicht spezialisiert?
Du hast mich nicht verstanden.
template<class T> class A {}; A<int> a; // Hier hast du A spezialisiert.
-
pyhax schrieb:
Ist es so, dass das "Zahl" in der Klasse für Zahl<Type> steht?
ja, per definitionem.
-
cooky451 schrieb:
pyhax schrieb:
? Ich habe die Klasse doch gar nicht spezialisiert?
Du hast mich nicht verstanden.
template<class T> class A {}; A<int> a; // Hier hast du A spezialisiert.Ah, ok. Ich fand es bloß merkwürdig, dass ich keine Compiler Errors/Warnings bekommen habe, und wollte schon fast so etwas in der Art machen:
template <typename T> class Zahl { private: typedef Zahl<T> Self; };Danke
