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

C++ Discussion :

imbriquée et dérivée


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut imbriquée et dérivée
    Bonjour,

    J' essaie en vain d' accéder à une instance de classe imbiquée dans une classe dérivée... hum un peu confus tout cela. Un petit exemple :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    #include <iostream>
    using namespace std;
     
    template < typename T >
    class AA
    { private:
      protected :
     
      class BB 
      { public :
        T val ;
        BB() {}
        BB( const T& v ) : val(v) {}
      };
     
      BB * B ;
      public:
      AA()  { B= 0; }
      AA( const T& v ) 
      { B = new BB( v ) ; }
     
      virtual ~AA() { delete B ; }  
     
      void show()
      {  cout << B->val << endl ; }
     
      BB * getIn();
     
      void run() 
      { BB * b = getIn() ;
        cout << b->val << endl ;
      }  
    };
     
    template < typename T >
    typename AA<T>::BB * AA<T>::getIn() 
    { return B ; }
     
     
    template < typename T >
    class CC : public AA<T> 
    { public :
      CC() : AA<T>(){};
      CC( const T& v ) : AA<T>(v) {}	  
      T doComplicated()
      { //typename AA<T>::BB * c = AA<T>::getIn() ;  //ok
        typename AA< T >::BB * c =  AA<T>::BB->B ;  // scratch 
        return c->val ;
      }    
    };
     
    void do1()
    { CC<int>  a(999) ; 
      a.show() ;
      a.run() ;
      cout << endl << "oops " << a.doComplicated() << endl ;
    }
     
    int main( int argc, char ** argv )
    { do1() ;
      return 0 ;
    }
    Je n' arrive pas à partir de CC à accéder à B déclarer dans AA .
    Si vous avez une idée...

    Cordialement.

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Utilise [code], pas [quote].

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonsoir,

    Je crois que j' ai trouvé en simplifiant...
    Fallait écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    typename AA< T >::BB * c =  AA<T>::B ;
    Cordialement.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    BB n'a rien à faire là (et encore moins derrière un ->), c'est le type de ta variable.

    Je crois que j' ai trouvé
    Je confirme que tu as trouvé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pb requête imbriquée
    Par ddams dans le forum Requêtes
    Réponses: 11
    Dernier message: 20/04/2004, 12h13
  2. Procédures stockées imbriquées SQL Server
    Par Mike69 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 01/10/2003, 10h31
  3. Lettre Drive lecteur de CDRom
    Par titicurio dans le forum C++Builder
    Réponses: 4
    Dernier message: 18/09/2003, 13h44
  4. Requêtes imbriquées ?
    Par Ph. B. dans le forum XMLRAD
    Réponses: 7
    Dernier message: 06/05/2003, 13h19
  5. Requête imbriquée et indexes INTERBASE
    Par vadim dans le forum InterBase
    Réponses: 2
    Dernier message: 06/09/2002, 16h15

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