IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage C++ Discussion :

probléme : template multiple et héritage simple.


Sujet :

Langage C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Points : 9
    Points
    9
    Par défaut probléme : template multiple et héritage simple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #ifndef _INDEX_ARR__H__
    #define _INDEX_ARR__H__
     
    #include "base/Manager.h"
    #include "math/vector.h"
     
    namespace zodiac
    {
      namespace Graphic
      {
     
        template <unsigned int s>
        class IndexArray : public base::Manager<math::BasicVector<int,s> >
        {
     
        public:
     
          int * GetIndex(int i)
    	{
                return (int*) Manager<math::BasicVector<int,s> >::GetItem(i);
    	}
    je ne vous poste que le début du code car le reste est 1/ fort banal 2/ vraissemblablement pas cause du probléme.

    vous aurez l'oeil attiré par le Manager<math::BasicVector<int,s> >::GetItem(i); qui remplace un banal GetItem(i) dans GetIndex().
    GetItem(i) est déclarée sans probléme (et utilisée avec une autre classe qui n'a pas de template sur le s, mais qui se déclare formellement <float,3>)
    Elle est déclarée dans la classe Manager, Sous forme normale et sous forme constante
    (T GetItem(int) et const T GetItem(i) const)

    En fait dés que je vire le Manager<math::BasicVector<int,s> >:: que je n'aime pas etre obligée d'employer je recois un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ./graphic/IndexArray.h: In member function ‘int* zodiac::Graphic::IndexArray<s>::GetIndex(int)’:
    ./graphic/IndexArray.h:21: erreur: there are no arguments to ‘GetItem’ that depend on a template parameter, so a declaration of ‘GetItem’ must be available
    ./graphic/IndexArray.h:21: erreur: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
    j'ai déjà eu le probléme avec des héritages multiples sur des Manager de types différents, mais je m'apercois maintenant que je l'avais mal compris et corrigé par erreur.

    (somme toute mon probléme ce n'est pas le probléme puisque ca marche comme ca, mais pourquoi cette erreur se déclenche? dois je aller faire un tour dans le man GCC ?)

    j'utilise g++ sous linux.

    (merci d'avance de votre aide)

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 100
    Points
    100
    Par défaut
    cf http://gcc.gnu.org/onlinedocs/gcc-4....ml#Name-lookup

    Par exemple, le code suivant devrait compiler sans erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    template<typename T> struct A {
    	void f1(T&) {}
    	void f2(int) {}
    };
     
    template<typename T> struct B: public A<T> {
    	void g1(T& t) {
    		f1(t);
    	}
    	void g2() {
    		this->f2(0); // pareil que A<T>::f2(0);
    	}
    };

Discussions similaires

  1. Réponses: 19
    Dernier message: 13/07/2006, 13h35
  2. Problème template
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 03/12/2005, 20h29
  3. Réponses: 21
    Dernier message: 05/09/2005, 13h53
  4. [KeyEvent] Problème de multiples appels
    Par pierre.zelb dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 11/08/2005, 14h53
  5. Réponses: 2
    Dernier message: 25/07/2004, 23h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo