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 :

[struct & const] init


Sujet :

C++

  1. #1
    Membre �clair� Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par d�faut [struct & const] init
    je cherche a initialis� un membre constant d une structure...


    pouvez vous me dire comment SVP ?

    definition
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    struct TMaStruct
    {
    	const std::vector<MonType>::iterator iter1;
    	int iInitValue;
    };
    j ai une erreur C2512 qui me dit que j ai pas de constructeur apropri� ( evideamment ca a l air d'etre la seul mani�re d initialis� un membre de structure constant).

    Mais comment le coder ???

  2. #2
    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
    Le seul moyen d'initialiser une constante est de le faire � sa construction, donc dans la liste d'initialisation si elle est membre.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    struct TMaStruct
    {
        TMaStruct() : iter1(...) {}
     
        const std::vector<MonType>::iterator iter1;
        int iInitValue;
    };
    Mais je ne vois pas avec quoi tu vas pouvoir initialiser ton it�rateur, ni quel sens cela pourrait avoir vu que le conteneur duquel viendra l'it�rateur va vraissemblablement changer par la suite. Ce ne serait pas un const_iterator que tu voudrais en fait ?

  3. #3
    Membre �clair� Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par d�faut
    Citation Envoy� par Laurent Gomila
    Ce ne serait pas un const_iterator que tu voudrais en fait ?
    oui c 'est exactement ca !

    que se passe t il avec un const_iterator si le vector subit des changements apres avoir setter le const_iterator ?

  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
    Tout it�rateur, const ou pas, est invalid� lors d'ajouts / insertions / suppressions dans le vector. Vois le vector comme une zone m�moire, et l'it�rateur comme un pointeur vers une case de cette zone. Lorsque tu manipules des �l�ments la zone m�moire peut bouger pour s'agrandir, tout ce qui pointe dessus n'est donc plus valide.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Init const map dans derivee
    Par sone47 dans le forum Langage
    R�ponses: 21
    Dernier message: 27/03/2013, 14h21
  2. R�ponses: 6
    Dernier message: 01/08/2011, 00h22
  3. Init d'une const map dans une classe
    Par vdaanen dans le forum SL & STL
    R�ponses: 4
    Dernier message: 15/01/2009, 15h03
  4. Probl�me avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    R�ponses: 2
    Dernier message: 17/07/2002, 10h25

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