Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
643 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Prototype méthode membre de classe template

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Prototype méthode membre de classe template

n°1994561
Vel-Ryphon
Posté le 19-05-2010 à 20:10:37  profilanswer
 

Bonjour,
 
J'ai une classe template nommée QUADTREE.
Dans cette classe, j'ai une structure privée nommée CELL.
Dans cette classe, j'ai une méthode privée GET_CELL, retournant une référence vers CELL.
 
 

Code :
  1. template <class type>
  2. class        Quadtree
  3. {
  4. private:
  5.  struct Cell
  6.  {
  7.  ...
  8.  };
  9.  Cell& get_cell(...);
  10.  ...
  11. };


 
Lorsque je veux déclarer le code de la méthode, j'ai un problème lié au fait que le type retourné est privée et appartient à une classe template.
Voici ce que je pensais être bon :
 

Code :
  1. template <class type>
  2. Quadtree<type>::Cell&
  3. Quadtree<type>::get_cell(Cell& cell, const Coord_2D<float>& location)
  4. {
  5. ...
  6. }


 
En l'état, j'ai l'erreur suivante :
 

Code :
  1. error: need 'typename' before 'Quadtree<type>::Cell' because 'Quadtree<type>' is a dependent scope


 
J'ai essayé comme ceci :
 

Code :
  1. Quadtree::Cell&


 
J'obtiens :
 

Code :
  1. error: invalid use of template-name 'Quadtree' without an argument list


 
J'ai essayé comme ceci :
 

Code :
  1. Quadtree<class type>::Cell&


 
J'obtiens :
 

Code :
  1. error: using template type parameter 'type' after 'class'
  2. error: template argument 1 is invalid


 
Et enfin j'ai essayé comme ceci :
 

Code :
  1. Cell&


 
J'obtiens :
 

Code :
  1. error: 'Cell' does not name a type


 
Pourriez-vous m'indiquer la bonne syntaxe ? Le compilateur est GCC 4.5
 
Je vous remercie par avance !
 

mood
Publicité
Posté le 19-05-2010 à 20:10:37  profilanswer
 

n°1994570
Un Program​meur
Posté le 19-05-2010 à 20:53:51  profilanswer
 

Ce que te suggérait le message d'erreur

 
Code :
  1. template  <class type>
  2. typename Quadtree<type>::Cell&
  3. Quadtree<type>::get_cell(Cell& cell, const Coord_2D<float>& location)
  4. {
  5.    ...
  6. }



Message édité par Un Programmeur le 20-05-2010 à 09:33:26

---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1994582
Vel-Ryphon
Posté le 19-05-2010 à 21:34:39  profilanswer
 

Ah, merci ! Je n'avais pas compris dans le message d'erreur que typename était un mot clé. Encore merci!


---------------
http://www.ryphon-mechanics.com
n°1999169
nightwar
Posté le 04-06-2010 à 17:18:41  profilanswer
 

as tu au moin compris pourquoi il faut mettre typename ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] Prototype méthode membre de classe template

 

Sujets relatifs
Internationaliser mon application C#[C#][WOrd 2003] Modifier fichier Word
Flottants en Caide pour socket TCP IP en C
Comment dessiner arbre de recherche binaire en graphisme sous C ou C++grands nombres en C
template - types spécifiquesPgsql/C: truncate table après un timer???
Débutant need Help en CLink error et Objective-C
Plus de sujets relatifs à : [C++] Prototype méthode membre de classe template


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR