Bonjour,
J'aimerai compiler une classe gérant des tableaux :
Mon fichier .h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef __TEMPLATE_TAB
#define __TEMPLATE_TAB
 
template <class T>
class tableau
{
	private:
		T* Elements;
		int Nombre;
		T* Allouer(int nb);
 
	public:
		int Ajouter(T& valeur);
		int Supprimer(int index);
		void SupprimerTout();
		T& operator [](int index);
		void operator =(tableau &source);
		int NombreElement() { return Nombre; }
 
		tableau();
		~tableau();
};
 
#include "conteneur.C"
#endif
Dans conteneur.C j'ai toutes les fonctions membre de la classe.
Dans mon fichier qui utilise cette classe je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include "conteneur.h"
using namespace std;
 
int main()
{
	tableau<int> VecteurInt;
	VecteurInt.Ajouter(1);
	VecteurInt.Ajouter(3);
	VecteurInt.Ajouter(6);
	VecteurInt.Ajouter(7);
 
	for(int i=0; i< VecteurInt.NombreElement(); i++){
		cout<< VecteurInt[i] << endl;
	}
        return 0;
}
Avec un makefile, je compile et voici l'erreur :
test-conteneur.C: In function `int main()':
test-conteneur.C:8: erreur: pas de fonction concordante pour l'appel à « tableau<int>::Ajouter(int) »
/home/bar/docs/C++/conteneurs/conteneur.C:19: note: candidats sont: int tableau<T>::Ajouter(T&) [with T = int]
test-conteneur.C:9: erreur: pas de fonction concordante pour l'appel à « tableau<int>::Ajouter(int) »
/home/bar/docs/C++/conteneurs/conteneur.C:19: note: candidats sont: int tableau<T>::Ajouter(T&) [with T = int]
test-conteneur.C:10: erreur: pas de fonction concordante pour l'appel à « tableau<int>::Ajouter(int) »
/home/bar/docs/C++/conteneurs/conteneur.C:19: note: candidats sont: int tableau<T>::Ajouter(T&) [with T = int]
test-conteneur.C:11: erreur: pas de fonction concordante pour l'appel à « tableau<int>::Ajouter(int) »
/home/bar/docs/C++/conteneurs/conteneur.C:19: note: candidats sont: int tableau<T>::Ajouter(T&) [with T = int]
make: *** [test-conteneur] Erreur 1
Je ne comprend pas très bien?!