Salut à tous,

J'ai un problème avec les lignes de code C++ suivantes qui ne compilent pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
template <typename T>
class Parent
{	
protected:
	int _property;
};
 
template <typename T>
class Child : public Parent <T>
{
	void test () {_property;}
};
Je lance la compilation avec la commande g++ -c monFichier.cpp sous Cygwin.

Version de g++ : 3.4.4

J'ai l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
monFichier.cpp: In member function `void Child<T>::test()':
monFichier.cpp:13: error: `_property' undeclared (first use this function)
monFichier.cpp:13: error: (Each undeclared identifier is reported only once for each function it appears in.)
Avez-vous une idée d'où provient l'erreur ? A noter que si je vire les attributs templates, le code compile.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
//template <typename T>
class Parent
{	
protected:
	int _property;
};
 
//template <typename T>
class Child : public Parent //<T>
{
	void test () {_property;}
};
Merci.