A voir également:
- [C++] héritage
- Texte de don d'héritage ✓ - Forum Vos droits sur internet
- Valise maison heritage avis ✓ - Forum Consommation & Internet
- Maison héritage canapé avis - Forum Vos droits sur internet
- Cheick yvan formate héritage - Forum Vos droits sur internet
- Arnaque canapé ✓ - Forum Vos droits sur internet
3 réponses
choubaka
Messages postés
39410
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
3 janvier 2025
2 104
30 juin 2003 à 12:08
30 juin 2003 à 12:08
Salut
c'est le principe même de l'héritage, cercle et rectangle sont des Figures mais spécialisées
Chouba
Casque Bleu forumique
c'est le principe même de l'héritage, cercle et rectangle sont des Figures mais spécialisées
Chouba
Casque Bleu forumique
olivier.s
Messages postés
49
Date d'inscription
jeudi 11 avril 2002
Statut
Membre
Dernière intervention
28 mars 2015
15
30 juin 2003 à 15:54
30 juin 2003 à 15:54
Salut,
Ca fait un petit moment que j'ai pas touché au C++, dc je pense mais je suis pas sur que tu n'as pas de chose similaire a instanceof de Java. La si je dis une connerie, arretez moi.
Par contre tu peux peut etre declarer une methode virtuelle pure ds ta classe mere et la redefinir ds tes clases fille pour qu'elle te done le nom de la classe. Et t'apelles direct ta methode depuis l'element du vecteur : monVecteur[i].quelleClasse() si c'est possible. Quelque chose comme ca quoi. J'espere avoir ete clair et que ca d'aidera.
A ce niveau de mon explic je te cache pas que ce que je te raconte me rappelle fortement les listes (ou autres piles..) pseudo-generique en C. Mais bon...
Par contre tu parles de vecteurs, si t'utilises la STL n'inseres pas directement tes objets dedans mais des pointeurs (ca evite les appels aux constructeurs de copie de tes objets et tout le bazar s'en suivant pour des clopinettes). Va voir la doc de la STL.
Ca fait un petit moment que j'ai pas touché au C++, dc je pense mais je suis pas sur que tu n'as pas de chose similaire a instanceof de Java. La si je dis une connerie, arretez moi.
Par contre tu peux peut etre declarer une methode virtuelle pure ds ta classe mere et la redefinir ds tes clases fille pour qu'elle te done le nom de la classe. Et t'apelles direct ta methode depuis l'element du vecteur : monVecteur[i].quelleClasse() si c'est possible. Quelque chose comme ca quoi. J'espere avoir ete clair et que ca d'aidera.
A ce niveau de mon explic je te cache pas que ce que je te raconte me rappelle fortement les listes (ou autres piles..) pseudo-generique en C. Mais bon...
Par contre tu parles de vecteurs, si t'utilises la STL n'inseres pas directement tes objets dedans mais des pointeurs (ca evite les appels aux constructeurs de copie de tes objets et tout le bazar s'en suivant pour des clopinettes). Va voir la doc de la STL.
Travaille avec unn tabelau de pointeurs
int nbFigures = 1000;
Figure** tab = new Figure*[nbFigures];
for (int i=0; i<nbFigures; i++)
if (i%2==0)
tab[i] = new Cercle(i); // cercle de rayon i
else
tab[i] = new Rectange(2*i, i); rectange de cotés 2*i et i
for int i=0; i<tab[i]; i++)
cout << "aire de la figure = " << tab[i]->calculeAire() << endl;
avec calculeAire() vurtuelle pure dans la classe figure
et calculeAire() retourne pi * rayon * rayon dans cercle
et calculeAire() retourne longuer * largeur dans cercle
ok ?
int nbFigures = 1000;
Figure** tab = new Figure*[nbFigures];
for (int i=0; i<nbFigures; i++)
if (i%2==0)
tab[i] = new Cercle(i); // cercle de rayon i
else
tab[i] = new Rectange(2*i, i); rectange de cotés 2*i et i
for int i=0; i<tab[i]; i++)
cout << "aire de la figure = " << tab[i]->calculeAire() << endl;
avec calculeAire() vurtuelle pure dans la classe figure
et calculeAire() retourne pi * rayon * rayon dans cercle
et calculeAire() retourne longuer * largeur dans cercle
ok ?
30 juin 2003 à 12:09
30 juin 2003 à 13:39
Chouba
Casque Bleu forumique
30 juin 2003 à 13:45
Merci
Auré
30 juin 2003 à 14:55
Chouba
Casque Bleu forumique