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 :

nommer un objet avec une variable


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut nommer un objet avec une variable
    bonjour, je suis nouveau et j'ai une question pour un projet de vision numérique fait en c++ pour numériser une partie d'échecs avec une caméra.

    ma question est la suivante :

    jai une classe Pièce et je voulais créer 8 objects de class Piece pour faire les pion, alors j'aurai voulu faire ça :
    for(int k=0; k<=7; k++)
    {Piece pion;
    pion.setNomPiece("Pi");
    k++;
    }

    mais j'aimerais nommer mes pions pion0, pion1 ... jusqua pion7

    il y a t il une méthode pour nommer mon objet de classe pièce en tenant compte de la variable d'incrémentation k dans son nom?
    j'ai esayer de créer un string mais je n'arrive pas a l'intégrer en tant que nom de mon objet.

    je suis pressé :-S lolll projet a finir pour lundi et j'ai toujours pas fini
    merci d'avance

  2. #2
    Membre averti Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Points : 352
    Points
    352
    Par défaut
    Salut,

    il existe des fonctions pour transformer des valeurs numeriques en char*

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_crt_data_conversion.asp

    essaye par exemple itoa().

    et tu pourras faire quelquechose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    string nom = "pion";
    char* conv = itoa(i);
    string num(conv);
     
    string nomTotal = nom + num;
    ce n'est peut etre pas le code exacte mais ca doit ressembler a ca.

    XXiemeciel
    XXiemeciel

  3. #3
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut Re: nommer un objet avec une variable
    Citation Envoyé par fatcat
    j'aimerais nommer mes pions pion0, pion1 ... jusqua pion7
    Ça s'appelle des tableaux et les noms sont légèrement différents en C++:
    pion[0] jusque pion[7].
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    ok merci je vais essayer ça xxieme ciel

    euuhhhh jean.marc en fait je veux juste 8 objets et pas un tableau de 8 objets forcément, mais je vois ce que tu veux dire

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 94
    Points : 82
    Points
    82
    Par défaut
    Oui mais, sans un tableau ou une autre sorte de conteneur, comment est-ce que tu vas retrouver tes objets une fois créés ?

    D'autant plus que dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     for(int k=0; k<=7; k++)
    {Piece pion;
    pion.setNomPiece("Pi");
    k++;
    }
    Chaque pièce est initialisée à l'intérieur de la boucle for ... ce qui veut dire qu'elle est détruite automatiquement à chaque nouvelle itération de la boucle.

    Il faudra donc faire :
    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
    #include <vector>
    #include <string>
    #include <sstream>
     
    std::vector<Piece> pions;
    for (int k = 0; k <= 7; k++) {
     
       // Création de la pièce
       Piece p();
     
       // Génération automatique du nom en fonction de k
       std::string intval;
       std::stringstream ss;
       ss << k;
       ss >> intval;
     
       // Ajout de la pièce au vecteur
       pions.insert(pions.end(), p);
     
    }
    Et là, plus de problème puisque les objets sont référencés dans un vecteur et il suffit de faire pions[k] pour accéder au pion k. De plus, les pièces crées par Piece p(); sont effectivement détruites, mais tu peux toujours y accéder puisque des copies (et non des références) sont stockées dans le vecteur.

    Voilou ...
    Kwakanar

Discussions similaires

  1. Problème avec une variable de type objet
    Par mrocks dans le forum C#
    Réponses: 7
    Dernier message: 09/05/2009, 22h27
  2. Nommer une table avec une variable
    Par stephane9422 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/12/2005, 14h02
  3. Réponses: 2
    Dernier message: 14/05/2004, 14h32
  4. Comparaison d'un registre 8 bits avec une variable 32 bits
    Par tupperware dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 15/10/2002, 10h25
  5. Désigner une variable avec une variable?
    Par littleman dans le forum Paradox
    Réponses: 4
    Dernier message: 12/08/2002, 11h21

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