Erreur: spécificateur de type manquant – int supposé. C ++ ne supporte pas les int par défaut

J’ai écrit un exemple de classe avec l’utilisation de modèles. c’est assez simple:

template  class myClass { public: // construction, destruction myClass(); virtual ~myClass(); class Object { public: Object() { m_pNext = NULL; m_pPrev = NULL; } ~Object() {} T m_Value; Object* m_pNext; Object* m_pPrev; }; public: // accessor functions Object* Beginning(); private: Object* m_pBegin; Object* m_pEnd; INT m_nCount; }; template  inline myClass::Object* myClass::Beginning() { return m_pBegin; } template  inline myClass::myClass() { } template  inline myClass::~myClass() { } 

J’utilise Visual Studio 2008, et voici l’erreur de compilation

erreur C2143: erreur de syntaxe: manquant ‘;’ avant ‘*’ … erreur C4430: spécificateur de type manquant – int supposé. Remarque: C ++ ne prend pas en charge default-int.

les erreurs sont liées à cette ligne:

 inline myClass::Object* myClass::Beginning() 

Quelqu’un peut-il me dire ce qui n’allait pas dans ce code?

Merci.

Vous devez changer

 template  inline myClass::Object* myClass::Beginning() { return m_pBegin; } 

à

 template  inline typename myClass::Object* myClass::Beginning() { return m_pBegin; } 

car myClass::Object est un type dépendant.