J'ai un petit problème en voulant compiler ceci (avec visual C++ 6):
////////////////////////////////////
// Truc.h
template <class T>
class Truc
{
public:
Truc(int a);
};
////////////////////////////////////
// Truc.cpp
#include "Truc.h"
template <class T> Truc<T>::Truc(int a)
{
}
////////////////////////////////////
// main.cpp
#include "Truc.h"
int main()
{
Truc a(2);
return 0;
}
Et j'obtiens le message suivant:
Compiling...
Truc.cpp
main.cpp
Linking...
main.obj : error LNK2001: unresolved external symbol "public: __thiscall Truc::Truc(int)" (??0?$Truc@H@@QAE@H@Z)
Debug/temp.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
temp.exe - 2 error(s), 0 warning(s)
Par contre en mettant la fonction main dans le fichier Truc.cpp, pas de problème. Je pense que c'est dû à l'utilisation des templates, car le même code sans template se lie normalement.
Merci de m'aider
Afficher la suite