bonjour,
je debute en c++ et j'ai un petit probleme avec la compilation des templates ( j'utilise dev C++, donc compilateur gcc si je ne me trompe)
j'ai voulu tester de faire un "extends" de la classe list fournie. mais il me fait un probleme au niveau des iterators.
Citation :
ListeObjets.cpp In member function `T* ListeObjets<T>::getObjet(int)': 17 ListeObjets.cpp expected `;' before "it"
18 ListeObjets.cpp `it' undeclared (first use this function)
......
|
plus precisément voici le code qui pose probleme (le .cpp)
Code :
- #include <iostream>
- #include "ListeObjets.h"
- // Constructeur
- template <class T>
- ListeObjets<T>::ListeObjets() {
- }
- // Destructeur
- template <class T>
- ListeObjets<T>::~ListeObjets(){
- }
- // Accesseurs
- template <class T>
- T * ListeObjets<T>::getObjet(int numero) {
- list<T>::iterator it = _liste.begin();
- for(int n=numero; n > 0; n--) it++;
- return *it;
- }
-
- // Méthodes
- template <class T>
- void ListeObjets<T>::ajouterObjet(T *o) {
- push_back(o);
- }
-
- template <class T>
- void ListeObjets<T>::retirerObjet(int numero) {
- list<T>::iterator i = _liste.begin();
- for(int n=numero; n > 0; n--) i++;
- _liste.erase(i);
- }
|
est ce que j'ai un probleme dans mon code ou est ce que c'est le compilateur gcc qui gere pas les templates ?
Merci d'avance