template class NamedVector { class Road : public NamedVector { cat model/namedvector.hpp model/namedvector.cpp model/road.hpp model/road.cpp main.cpp | grep -v ".hpp" > toto.cpp; g++ toto.cpp # OK, pas d'erreurs g++ model/namedvector.cpp model/road.cpp main.cpp # Plein d'erreurs /tmp/ccAWLWM9.o: dans la fonction « Road::Road(std::basic_string, std::allocator > const&)»: road.cpp:(.text+0x14): référence indéfinie vers « NamedVector::NamedVector(std::basic_string, std::allocator > const&)» /tmp/ccAWLWM9.o: dans la fonction « Road::Road(std::basic_string, std::allocator > const&)»: road.cpp:(.text+0x2e): référence indéfinie vers « NamedVector::NamedVector(std::basic_string, std::allocator > const&)» /tmp/ccAWLWM9.o: dans la fonction « Road::Road() »: road.cpp:(.text+0x41): référence indéfinie vers « NamedVector::NamedVector()» /tmp/ccAWLWM9.o: dans la fonction « Road::Road() »: road.cpp:(.text+0x55): référence indéfinie vers « NamedVector::NamedVector()» /tmp/ccWakQYe.o: dans la fonction « main »: main.cpp:(.text+0x48): référence indéfinie vers « NamedVector::add(float const&)» collect2: ld a retourné 1 code d'état d'exécution