Salut à tous,
J'ai un problème avec les lignes de code C++ suivantes qui ne compilent pas :
Code :
- 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
A noter que ça ne compile pas non plus avec la v3.4.2 de g++ sous Sun Solaris; en revanche ça compile sous Windows avec Visual Studio v6.0.
J'ai l'erreur suivante :
Code :
- 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 :
- //template <typename T>
- class Parent
- {
- protected:
- int _property;
- };
- //template <typename T>
- class Child : public Parent //<T>
- {
- void test () {_property;}
- };
|
Merci.
---------------
Paléoanthropologie, évolution de l'espèce humaine et préhistoire