Bonjour,
A la compilation de mon programme, j'obtiens ce message :
g++ -o exemples.o -c exemples.cc -W -Wall -g exemples.cc:7: erreur: redefinition of ‘Exemple<T>::Exemple()’ exemples.tpp:4: erreur: ‘Exemple<T>::Exemple()’ previously declared here make: *** [exemples.o] Erreur 1
Que faut-il que je modifie ou ajoute pour que mon programme fonctionne?
Merci
Voici les différents fichier et le Makefile
// exemple.hh
#ifndef EXEMPLE_HH
#define EXEMPLE_HH
template <typename T>
class Exemple
{
public:
Exemple();
};
#include "exemples.tpp"
#endif
// exemple.tpp
template <typename T>
Exemple<T>::Exemple()
{
}
//exemples.cc
#include <iostream>
#include "exemples.hh"
template <typename T>
Exemple<T>::Exemple(){
std::cout << "ceci est un exemple" << std::endl;
}
int main(){
Exemple<int> ex;
return 0;
}
CC=g++ CFLAGS=-W -Wall -g LDFLAGS=-W -Wall -g EXEC=exo all: $(EXEC) exo: exemples.o $(CC) -o exo exemples.o $(LDFLAGS) exemples.o: exemples.cc $(CC) -o exemples.o -c exemples.cc $(CFLAGS) clean: rm -rf *.o mrproper: clean rm -rf $(EXEC)

