begin process at 2010 02 10 05:27:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

PB tableau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PB tableau

samedi 28 octobre 2006 à 12:27:21 | PB tableau

petitavion414

Bonjour à tous

Je vous explique mon problème qui me resiste depuis longtemps :

J'ai une classe mère qui s'appelle ouvrages (qui est de plus une abstract classe). Cette classe ouvrage a deux classes dérivées :
    - une classe livre
    - une classe revue.

J'ai ensuite créer une classe bibliothèque de la manière suivante

class biblio:
    string nom
    livre liste_livre[20]
    revue liste_revue[20]
    int nombre_livre_deja_enregistrés
    int nombre_revue_deja_enregistrés

Maintenant je voudrais définir mon constructeur de ma biblio pour qu'il prenne en argument un string qui représentera son nom et un tableau d'ouvrages (que l'on aura défini dans le main).

C'est à dire je voudrais faire la copie  de mon vecteur que j'aurais defini dans mon main dans les deux tableaux qui composent ma classe biblio...
Sachant bien sur que le tableau d'ouvrage defini dans le main est defini grace a des pointeurs

ouvrage *liste_test[10];
liste_test[0]=&livre1;

Mon constructeur devra parcourir ma liste_test, definir si c'est un livre ou une revue et faire une copie de mon objet dans le tableau approprié...

Mon premier problème est de lui faire comprendre que j'ai en argument un string qui représente un nom et un tableau d'ouvrages de taille quelconque.
Ensuite je fais un test sur le type d'objet que je rentre et je choisi le tableau approprié.
Et la mon deuxième problème : comment lui faire copier mon objets livre ou revue dans ce vecteur...
Alors j'ai essayé avec un interpret cast et en appelant un copy constructor mais rien ca ne marche pas....(ce que j'ai a ma disposition : copy constructor, overloading sur l'operateur =)

Je suis perdu, merci d'avance



                                   
samedi 28 octobre 2006 à 14:43:01 | Re : PB tableau

luhtor

"en argument un string qui représentera son nom" => son nom de quoi ? c'est quoi ce nom ?

Pour le constructeur:
biblio(const std::string & _name, ouvrages ** _array); // je vois pas trop ou tu bloques

Un test sur le type d'objet => c'est jamais terrible, mieux vaut définir un enum "type" qui permettra de savoir facilement si c'est un livre ou une revue.


samedi 28 octobre 2006 à 16:46:25 | Re : PB tableau

juju12

luhtor-> je pense que le nom est celui de la bibliothèque.
Sinon, pour proposer une autre solution que l'enum, tu peux créer une fonction dans la classe ouvrage qui s'occupe directement de copier l'élément dans le tableau, et implémenter les fonctions dérivées pour qu'elles se copient au bon endroit :

void ouvrage::CopyToBuffer(liste**plBuffer,revue**prBuffer)=0;

void revue::CopyToBuffer(livre**plBuffer,revue**prBuffer)
{
   (*prBuffer)=new revue(*this);
   (*prBuffer)++;
}

void livre::CopyToBuffer(livre**plBuffer,revue**prBuffer)
{
   (*plBuffer)=new livre(*this);
   (*plBuffer)++;
}

Puis dans le constructeur de Biblio :
Biblio::Biblio(const std::string& name, ouvrages*pBuffer,int nOuvrages)
{
   // pour chaque ouvrage i...
   pBuffer[i]->CopyToBuffer(&liste_livre,&liste_revue);
}

samedi 28 octobre 2006 à 20:53:10 | Re : PB tableau

luhtor

Oue mais imagine apres que tu veilles ajouter une nouvelle catégorie de livre :) Vive le boulo, alors que meme si un enum est pas particulièrement beau, il a le mérite d'etre évolutif facilement.


dimanche 29 octobre 2006 à 09:50:05 | Re : PB tableau

juju12

Bien sûr, je n'ai pas dit que c'était meilleur.
mercredi 1 novembre 2006 à 12:33:44 | Re : PB tableau

Arnaud16022

Membre Club
chuis ok avec la méthode des classes dérivées, perso.
Utilise un std::vector, plus besoin de nombre_{livre|revue}_deja_enregistrés ( a propos comment t'arrives à mettre un accent dans une source ? t'as quel complio ? ) et pour copier, un simple = suffit. Tu pourras aussi passer par référence. plus de pb.

_______________________
Omnia vincit labor improbus


Cette discussion est classée dans : liste, tableau, classe, livre, revue


Répondre à ce message

Sujets en rapport avec ce message

tableau de liste chainee [ par melanie ] comment peut on remplir les cases d'un tableau avec des chainons déclarés comme :typedef struct chainon *listetypedef struct chainon {intval;liste sui Constructeur sur un tableau de classes [ par Supo ] Lorsque je crée un tableau de classe, disons avecnomdelaclasse instance[10];et que j'ai un constructeur pour cette classe, comment je fait pour donner CListBox [ par wanny ] Bonjour.Dans une classe d'une fonction, je déclare une autre classe (avec une boite de dialogue à afficher) :Dans la boite de dialogue, il y a une CLi liste chaînée et classes [ par yeager ] Bonjour!J'ai programmé pendant deux ans en C et actuellement j'étudie le C++. Pour moi une classe est l'équivalent d'une structure en plus évolué (hér template? [ par payen ] Salut a tous,je programme actuellement une bibli de traitement d'images en C++, et j'ai un p'tit souci. En fait, j'ai cree une classe image qui contie Liste chainée d'objets de classes différentes [ par gillig ] Voici un problème auquel je ne trouve pas de réponse, enfin, rien d'efficace.J'ai une classe CDessin contenant une liste chaînée (CList) de pointeurs tableau d'une classe... [ par jonathan100 ] Bonjour a tous, Voici mon problème. J'ai une classe Voiture, et une classe table qui contient un tableau de Voiture. Voici le code de la classe table, attribut static [ par MLine ] Slut,j'ai encore des ennuis avec un attribut de classe déclaré en protected dans ma classe Organism :static Array2D vectorg(nx, ny); /*nx et ny entier appeler un tableau... [ par ilimo ] bonjour,voici mon probleme :1- j'ai 3 classes : a, b, c2- classe "a" contient un tableau de pointeur sur pointeur de classe "b" : b **tab;3- j'initial Liste chainé - Tableau dynamique [ par Alucard ] Bonjour,Je me demandais quel était le meilleur choix à faire entre ces 2 systèmes de gestion de suite d'objets en mémoire.J'hésite un peu car finaleme


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales