Problème programmation objet
Voilà, j'ai un petit problème de récusivité lorsque j'apelle des classes dans mon programme principal. Certaines classes ont besoins d'apeller aussi des classes... enfin, j'ai beau tenter de compiler sous toutes les coutures, je n'y arrive pas, puis-je céder une partie de mon code à quelqu'un qui pourrai m'aider ? merci beaucoup
Re: Problème programmation objet
Citation:
Envoyé par Contrec
Voilà, j'ai un petit problème de récusivité lorsque j'apelle des classes dans mon programme principal. Certaines classes ont besoins d'apeller aussi des classes... enfin, j'ai beau tenter de compiler sous toutes les coutures, je n'y arrive pas, puis-je céder une partie de mon code à quelqu'un qui pourrai m'aider ? merci beaucoup
Ton problème est-il celui là :
Comment créer 2 classes qui font référence l'une à l'autre ?
?
Mon problème est le suivant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
| #include<iostream.h> // cin et cout //
#include<string.h> // strcpy pour chaîne de caractères //
#include<stdio.h> // gets pour chaîne de caractères //
#include"Genre_h"
// Classe Etagere //
class etagere
{
private:
int numero;
int nbgenre;
genre tabgenre[100];
public :
void init(int numEtagere);
int retourne_Etagere();
};
void etagere::init(int numEtagere)
{
numero = numEtagere;
}
int etagere::retourne_Etagere()
{
return numero;
}
#include<iostream.h> // cin et cout //
#include<string.h> // strcpy pour chaîne de caractères //
#include<stdio.h> // gets pour chaîne de caractères //
#include"Etagere_h"
#include"Livre_h"
// Classe Genre //
class genre
{
private:
char* libelle;
int nblivre;
livre tablivre[100];
etagere ob_etagere;
public:
void init( char* libelleGenre, etagere uneEtagere);
char* retourne_genre();
int rangLivre (char* titreLivre);
int titre_comp;
void placeLivre (livre unLivre);
};
void genre::init(char* libelleGenre, etagere uneEtagere)
{
tablivre = 0;
strcpy(libelle, libelleGenre);
ob_etagere = uneEtagere;
}
char* genre::retourne_genre()
{
return libelle;
}
int genre::rangLivre(char* titreLivre)
{
int i;
for (i = 0, i <= 100, i++)
{
titre_comp = tablivre[i].getTitre
while ((i <= nblivre) && (titre_comp < titreLivre))
{
i++;
}
return i;
}
}
void placeLivre(livre unLivre)
{
int pos = 0;
int i = pos;
int rangLivre (unLivre.titre);
for (i = pos; i<= nblivre; i++)
{
tablivre[i] = tablivre[i+1];
}
tablivre[pos] = unLivre;
}
#include<iostream.h> // cin et cout //
#include<string.h> // strcpy pour chaîne de caractères //
#include<stdio.h> // gets pour chaîne de caractères //
// Classe Livre //
class livre
{
private :
char* titre;
genre leGenre;
public :
void init(char* titreLivre, genre unGenre);
char* getTitre ();
};
void livre::init(char* titreLivre)
{
strcpy (titre, titreLivre);
leGenre = unGenre;
}
char* livre::getTitre()
{
return titre;
} |
Je n'arrive pas à compiler ces classes, voici le programme principal
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| #include<iostream.h> // cin et cout //
#include<string.h> // strcpy pour chaîne de caractères //
#include<stdio.h> // gets pour chaîne de caractères //
#include"Classes.h"
void main()
{
int numEtagere;
char* libelleGenre;
char* titreLivre;
int action;
char* libelle_s;
char* titre_s;
int num_etagere_s;
etagere uneEtagere;
livre unLivre;
cout<< "Que voulez-vous faire ?"
cout<<"\n\n";
cout<<"\t";
cout<<"1 : Creer une nouvelle etagere.";
cout<<"\n";
cout<<"\t";
cout<<"2 : Creer un nouveau genre.";
cout<<"\n";
cout<<"\t";
cout<<"3 : Creer un nouveau livre.";
cout<<"\n\n";
cin >> action
switch (action)
{
case 1:
cout<< "Veuillez entrez le numero de l'etagere à creer SVP.";
cout<< "\n\n";
cin >> numEtagere;
etagere.init (numEtagere);
cout<< "Vous avez cree l'etagere numero :";
cout<<"\n";
num_etagere_s = etagere.retourne_Etagere();
cout<< "\n";
numEtagere = 0;
break;
case 2:
cout<< "Veuillez entrez le libelle du nouveau genre ainsi que le numero de l'etagere SVP.";
cout<< "\n\n";
cin >> libelleGenre;
cin >> numEtagere;
uneEtagere.init(numEtagere);
genre.init (libelleGenre, uneEtagere);
cout<< "Vous avez cree le genre :";
cout<< "\n";
libelle_s = genre.retourne_genre();
cout<< "\n";
numEtagere = 0;
libelleGenre = "";
break;
case 3:
cout<< "Veuillez entrer le titre du nouveau livre ainsi que son genre SVP.";
cout<< "\n\n";
cin >> titreLivre;
cin >> libelleGenre;
livre.init(titreLivre, libelleGenre);
cout<< "Vous avez cree le livre :";
cout<< "\n";
titre_s = livre.getTitre();
cout<< "\n";
titreLivre = "";
libelleGenre = "";
break;
}
} |
Je sais que ça ne se fais pas de laisser trouver la solution par les autres, mais cela fait 3 mois que je n'arrive pas à m'en démeler, merci de m'aider.