Je n'arrive pas à maîtriser la programmation en utilisant des modèles en C++.Programmation de modèles en C++
Considérez les fichiers suivants.
C.h
#ifndef _C_H
#define _C_H
template <class T>
class C {
public:
C();
virtual ~C();
}
#endif _C_H
C.cpp
#include "C.h"
template <class T>
C<T>::C() {
}
template <class T>
C<T>::~C() {
}
je tente instancier une instance de C dans un fichier appelé main.cpp.
#include "C.h"
int main(int argc, char** argv) {
C<int> c;
}
Je reçois l'erreur suivante.
main.cpp undefined reference to `C<int>::C()'
Je lance alors
g++ -o C.o C.pp
g++ -o main.o main.cpp
mais je reçois l'erreur
main.cpp: undefined reference to `C<int>::C()'
main.cpp: undefined reference to `C<int>::~C()'
Je suis sûr que ce qui a probablement une erreur évidente, mais je suis un vrai débutant à ce serait donc reconnaissant de toute aide .
Merci!
Lien obligatoire: [C++ FAQ] (http://www.parashift.com/c++-faq-lite/templates.html#faq-35.12). –
Merci pour le lien, Georg. – bandini
'_C_H' est [réservé] (http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-a-c-identifier). – GManNickG