Template : problème constructeur
Bonjour à tous,
Je fais face à un problème d'utilisation de template :
TEST_TEMPLATE.cpp
Code:
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;
} |
Template.h
Code:
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;
}; |
Lors de la compilation de TEST_TEMPLATE.cpp, j'ai l'erreur suivante :
Citation:
../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
Je ne comprends pas pourquoi le constructeur vide est requis ...
Merci d'avance pour votre aide