Objet : ajout et taille

Résolu
scorpion077 Messages postés 44 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 14 mai 2009 - 19 févr. 2008 à 14:26
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 - 19 févr. 2008 à 14:42
Bonjour,

j'essai de corriger un DS portant sur la POO.
voici mon code:

--------------------------------------------------------------------------------
#include <stdio.h>
#include




class bag
{
 private :
 int nbmax;
 char el[100];


 public :
 bag();
 bag(int v);
 int full();
 int empty();
 int size();
 void add(char c);
 int remove(int v);
 int occurence(char c);
 char getel();
};


bag :: bag()
{
 nbmax = 1;
}


bag :: bag(int nb)
{
 nbmax = nb;
}


int bag :: full()
{
    if ( strlen(el) == nbmax ) return 1;
    else return 0;
}

int bag :: size()
{
 int i=0, cpt=0;
 while (i<nbmax)
 {
  if (el[i] == NULL) cpt=cpt+1;
  i = i+1;
 }
 return cpt;
}


void bag :: add(char c)
{
 if (full() == 0)
 {
  int s;
  s = size();
  el[s] = c;
 }
}

char bag :: getel()
{
    int i;
    for (i=0; i<nbmax; i++)
    {
    printf("%c",el[i]);
    }
}


int main()
{
 bag b=bag(3);


 b.add('c');
 b.add('d');
 b.add('e');
 printf("%d",b.size());
 b.getel();
 return 0;
}
-------------------------------------------------------------------------------------------

Lors de l'éxéution, la console me renvoie 0 (b.size) et e (b.getel).

Mon problème est le suivant :
La taille => la console devrait renvoyer 3 au lieu de 0.

Je me demande si l'erreur se trouve ici : "el[i] == NULL".
Si c'est le cas, je ne sais pas comment vérifier qu'une entité du tableau n'existe pas et ce, malgré des recherches.

Merci d'avance pour vos conseil :)

1 réponse

Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
19 févr. 2008 à 14:42
Salut
Il faut que tu initialise ton tableau el a 0 dans tes constructeurs pour que ca marche:
for(i=0;i<100;i++)
  el[i]=0;

A+
Mon site internet : http://pistol.petesampras.free.fr
3
Rejoignez-nous