Bonjour à tous,
Je fais face à un problème d'utilisation de template :
TEST_TEMPLATE.cpp
Template.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 #include <iostream> using namespace std; #include "Template.h" class ImplTemplate:public Template<int> { public: ImplTemplate(int i){setlu(i)}; }; int main() { cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! ImplTemplate cImplTemplate(1); return 0; }
Lors de la compilation de TEST_TEMPLATE.cpp, j'ai l'erreur suivante :
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 template <typename T> class Template { public: Template(int i) { li=i; }; void setlu(int i) { lu=i; } private : int li; int lu; };
Je ne comprends pas pourquoi le constructeur vide est requis ...../src/TEST_TEMPLATE.cpp: In constructor ImplTemplate::ImplTemplate(int):
../src/TEST_TEMPLATE.cpp:18: error: no matching function for call to Template<int>::Template()
../src/Template.h:18: note: candidates are: Template<T>::Template(int) [with T = int]
../src/Template.h:12: note: Template<int>::Template(const Template<int>&)
../src/TEST_TEMPLATE.cpp:18: error: expected `;' before } token
make: *** [src/TEST_TEMPLATE.o] Error 1
Merci d'avance pour votre aide
Partager