Templates ._.

kai j
Erstie
Erstie
Beiträge: 20
Registriert: 2. Nov 2011 22:50

Templates ._.

Beitrag von kai j »

Nehmen wir an, ich hab eine Headerdatei mit dieser Deklaration.

Code: Alles auswählen

template<class T> class BLA
{
	public:
		BLA<T> f();
}
Muss ich dann weiter unten in der Datei (bzw. in der korrespondierenden cpp-Datei) die Funktion auf folgende Weise implementieren?

Code: Alles auswählen

BLA<T> f() {
	...
}
Oder geht das anders?

Danke!

Benutzeravatar
kroimon
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 111
Registriert: 6. Okt 2009 00:12

Re: Templates ._.

Beitrag von kroimon »

Fast. Siehe auch: http://www.cplusplus.com/doc/tutorial/templates/

Code: Alles auswählen

template<class T> class BLA {
	public:
		BLA<T> f();
}
...

template <class T>
BLA<T> BLA<T>::f() {
	...
}
Die Funktion f hat als Rückgabewert also eine Instanz der Klasse selbst, ist das so gewollt?
~Stefan

kai j
Erstie
Erstie
Beiträge: 20
Registriert: 2. Nov 2011 22:50

Re: Templates ._.

Beitrag von kai j »

Ja, das ist gewollt. Danke für den Hinweis! Bei jeder weiteren Funktion darf ich ja dann den ganzen Wust wieder mit vorne dran setzen, etwa

Code: Alles auswählen

template<class T> class BLA {
   public:
      BLA<T> f();
      BLA<T> g();
}
...

template <class T>
BLA<T> BLA<T>::f() {
   ...
}
template <class T>
BLA<T> BLA<T>::g() {
   ...
}

Antworten

Zurück zu „Archiv“