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 :

pb héritage sur classe abstraite et iterator


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Consultant E-Business
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Par défaut pb héritage sur classe abstraite et iterator
    Bonjour !

    Pour mon héritage tou se passe bien jusqu'à ce type d'instruction : s.begin().

    Ma classe abstraite (mere) possède un vecteur d'objets en protected dans ses attributes privés.
    Ma classe fille hérite en public de la classe abstraite.

    s.begin() fonctionne parfaitement dans la classe mère pour initialiser mes iterator, mais c'est apparamment le seul probleme que je rencontre dans mes classes filles ...

    voila le code :
    vector<Sommet>::iterator its ;

    its = s.begin();

    et l'erreur :

    '=' binaire : aucun opérateur trouvé qui accepte un opérande de partie droite de type 'std::_Vector_const_iterator<_Ty,_Alloc>' (ou il n'existe pas de conversion acceptable)
    with
    [
    _Ty=Sommet,
    _Alloc=std::allocator<Sommet>
    ]

  2. #2
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    essaie:
    vector<Sommet>::const_iterator its ;


  3. #3
    Membre averti
    Profil pro
    Consultant E-Business
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Par défaut
    Ca élimine certaines erreurs mais il en reste ...

    J'utilise un int et la méthode at de vector pluôt que iterator .

    Merci quand même !

  4. #4
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    Quelles sont les erreurs qui restent?

  5. #5
    Membre averti
    Profil pro
    Consultant E-Business
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Par défaut
    vector<Relation>::const_iterator itr = r.begin();
    itr++;
    o << *itr->getS1()-> getNum();

    l'erreur :
    indirection non conforme

    *itr-> : si je mets autre chose (genre itr. ou itr-> soyons fous) ça ne marche pas non plus. Idem pour vector<Sommet>::const_iterator.

  6. #6
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    Un itérateur se comporte comme un pointeur qui pointe sur l'élément du conteneur. C'est donc bien la notation "itr->" qu'il faut utiliser (ou "(*itr)." qui est équivalente). Mais j'ai peur que le problème ne soit dû au const.
    Le plus simple serait que tu regardes d'un peu plus prés ces histoires de const.

Discussions similaires

  1. [EJB3 Entity] manytomany sur classe abstraite
    Par maibey dans le forum Java EE
    Réponses: 2
    Dernier message: 17/01/2009, 14h14
  2. [DC] Héritage et classes abstraites
    Par leminipouce dans le forum Diagrammes de Classes
    Réponses: 7
    Dernier message: 08/01/2008, 16h14
  3. Héritage et classes abstraites
    Par Mic75 dans le forum C++
    Réponses: 2
    Dernier message: 30/10/2007, 17h06
  4. Problème héritage et classes abstraites
    Par sebzinzin dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2007, 18h24
  5. héritage et classes abstraites
    Par reloadead dans le forum Langage
    Réponses: 5
    Dernier message: 31/01/2007, 10h08

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