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 :

Tester l'affectation d'un objet dans un tableau


Sujet :

C++

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Points : 58
    Points
    58
    Par défaut Tester l'affectation d'un objet dans un tableau
    Bonjour à tous,

    Voilà j'ai la classe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Objet {
     
    	private :
    		int attribut;
    		int x;                
     
    	public :
    		Objet(int attribut, int x){
                           this->attribut = attribut;
                           this->x = x;
                    }
    };
    Dans une autre classe je mets en attribut un tableau d'Objet.
    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
    class Test {
     
    	private :
    		Objet *tab;
                    int taille;
     
    	public :
    		Test(int taille) {
                         this->taille = taille;
                         tab = new Objet[taille];
     
     	             for (int i = 0; i < taille; i++)
    		           tab[i] = Objet();
    		}
     
    		~Test(){
                          delete [] tab;
                    }
    		...
    };
    Ce que je n'arrive pas à faire c'est tester si pour une case donnée du tableau un Objet a été affecté ou pas.
    J'ai essayé dans le constructeur de la classe Test d'initialiser les cases du tableau à null mais ça ne marche pas.
    C'est surement un truc tout bête mais en C++ je ne sais pas le faire.
    Ce que je veux faire c'est quelque chose dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "if (tab[x] == NULL)"
           // Alors la case est vide
    Merci d'avance.

  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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Objet tab[10];
    ...
    delete tab;
    La règle est pourtant simple :
    - new --> delete
    - new [] --> delete []
    Là en l'occurence tu n'as utilisé aucun des deux pour allouer ton tableau, donc tu n'as pas besoin de le libérer avec delete.

    Ce que je n'arrive pas à faire c'est tester si pour une case donnée du tableau un Objet a été affecté ou pas.
    Lorsque ton tableau est initialisé tous ses éléments sont de toute façon déjà correctement construits (par défaut -- ce qui fait que le code que tu nous donnes ne compilerait pas). En gros la boucle de ton constructeur ne sert à rien.
    Deux solutions pour avoir un état "non initialisé" :
    - Stocker des pointeurs (intelligents de préférence) : NULL sera une case non remplie
    - Prévoir une instance spéciale de ta classe Objet qui représentera un objet non défini -- pas toujours utilisable, ça dépend de la classe

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/10/2007, 11h33
  2. Réponses: 4
    Dernier message: 29/06/2007, 11h17
  3. Rechercher un objet dans un tableau d'objet
    Par mikaelm dans le forum Ruby
    Réponses: 6
    Dernier message: 11/06/2007, 17h58
  4. Probleme copie d'objet dans un tableau
    Par ché dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 13/12/2006, 12h15
  5. [Debutant] Stocker des objets dans un tableau à plusieurs indices
    Par Invité dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 27/09/2006, 18h04

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