Erreur lors de l'appel du setter avec un template simple
Bonjour,
je commence à m'intéresser au template en c++, mais j'ai quelque difficultés.
sur la classe suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
#ifndef FIELD_H
#define FIELD_H
#include <string>
using namespace std;
template <class T>
class Field
{
public:
Field();
void setValue(T);
T getValue();
private:
T value;
};
template<class T>
void Field<T>::setValue(T val){
value = val;
}
template<class T>
T Field<T>::getValue(){
return value;
} |
J'ai une erreur lors de l'appel au setter de ma classe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
int main()
{
Field<int> f1();
f1.setValue(10);
cout << f1.getValue() << endl;
Field<string> f2();
f2.setValue("test f2");
cout << f2.getValue() << endl;
return 0;
} |
à la ligne : f1.setValue(10); le compilateur me donne l'erreur suivante :
error: request for member `setValue' in `f1', which is of non-class type `Field<int> ()()'
Je pense donc qu'il ne considère pas que ma classe setValue ne puisse prendre d'argument int ( ni string, il me ressort la même erreur lorsque je fait un setValue sur le string "test f2" : non-class type `Field<std::string> ()() )
Quelqu'un pourrait il m'éclairer sur mon problème s'il vous plait ?
Merci