Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

[C++] héritage

Aurélien, le lundi 30 juin 2003 à 12:01:28 
 Signaler ce message aux modérateurs

Salut !
G une petite question concernant l'héritage en C++.
Imaginons une classe Figure, et deux autres classes rectangle et cercle héritant de figure.
Si je crée un vecteur/tableau de figures, est-ce que je pourrais y insérer des rectangles et cercles, qui, même si ils ne sont pas du même type, en héritent quand même.
Merci A+

1

choubaka, le lundi 30 juin 2003 à 12:08:00

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

Répondre à choubaka

2

Aurélien, le lundi 30 juin 2003 à 12:09:15

Donc rectangle et cercle peuvent bien être stockés dans un talbeau de figure ?

Répondre à Aurélien

3

choubaka, le lundi 30 juin 2003 à 13:39:50

Oui, à condition de savoir de quel type de figure tu as affaire lorsque tu dois l'extraire de ta structure de données

Chouba
Casque Bleu forumique

Répondre à choubaka

4

Aurélien, le lundi 30 juin 2003 à 13:45:41

Et il y a moyen de savoir quel est le type de la figure avant de l'extraire? (a priori non étant donnée ta réponse..)
Merci
Auré

Répondre à Aurélien

5

choubaka, le lundi 30 juin 2003 à 14:55:23

Je ne connais pas tous les objets et leurs méthodes héritées en C++, mais par exemple en java, il existe une méthode "instanceOf() qui permet celà, peut être qu'en C++, il existe l'équivalent...

Chouba
Casque Bleu forumique

Répondre à choubaka

6

olivier.s, le lundi 30 juin 2003 à 15:54:39

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.

Répondre à olivier.s

7

 marvinrouge, le lundi 30 juin 2003 à 16:53:35

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 ?

Répondre à marvinrouge
C++, héritage, écriture sur les fichiers (Résolu) Bonjour, Je cherche à concevoir un programme utilisant 4 classes : une classe générale Ensemble qui contient des occurences de la classe A. B et C héritent de A : A est virtuelle pure. J'aimerais pouvoir enregistrer le contenu de l'Ensemble dans un... www.commentcamarche.net/forum/affich-4885199-c-heritage-ecriture-sur-les-fichiers
[C#]Heritage, virtual, override,... Salut tout le monde... Y'a un truc que je ne capte pas sur C# J'ai une forme A et une forme B, B heritant de A. Dans ma forme A j'ai une fonction f : protected virtual void f() et dans ma B une : protected override void f() Quand je charge ma forme B,... www.commentcamarche.net/forum/affich-816715-c-heritage-virtual-override
Heritage en c++ : gerer les constructeurs. Salut a tous voila je prog un monopoly en c++ et j ai (parmis d autres) deux classes qui heritent d une troisieme : Bonus et Propriete qui heritent de Case voila j aimerai, lorsque j appelle le constructeurs de Case, je regarde si c une Propriete ou... www.commentcamarche.net/forum/affich-51027-heritage-en-c-gerer-les-constructeurs
Modifier le dossier d'installation par défaut C:\Program FilesPar défaut, l'installation de la plupart des programmes et logiciels se fait dans le dossier C:\Program Files. Pour une raison ou une autre, vous voulez changer ce dossier par un autre (sur une autre partition en cas de problème d'espace disque par... www.commentcamarche.net/faq/sujet-11458-modifier-le-dossier-d-installation-par-defaut-c-program-files
Compiler du C sous Linux/UNIXSous Linux, le compilateur de C est gcc. Il est installé de base sur plusieurs distributions, mais sur Debian (et celles qui en découlent) il faudra l'installer (aptitude install gcc). gcc Syntaxe de GCC gcc Tout d'abord, il faut savoir... www.commentcamarche.net/faq/sujet-203-compiler-du-c-sous-linux-unix
La compilation et les modules en C et en C++Cet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du... www.commentcamarche.net/faq/sujet-14440-la-compilation-et-les-modules-en-c-et-en-c
Héritage multipleest-ce kil ya l'heritage multiple en c# .si oui comment on le fait syntaxiquement et merci ;-) www.commentcamarche.net/forum/affich-880342-heritage-multiple
Heritage en c++ : pb de privateBonjour, je suis en train de potasser l'héritage de classe en c++ J'ai malheureusement un pb de private. Je me suis fais un exemple tout bete pour apprendre à manipuler les private, protected et public voici mon exemple enum Race{race1,race2,race3};... www.commentcamarche.net/forum/affich-837672-heritage-en-c-pb-de-private
Logiciel de généalogie my heritageBonjour, J'ai téléchargé la version gratuite de "my heritage" et je trouve que c'est vraiment un logiciel super, très ludique et très intéressant. J'ai plusieurs arbres généalogiques dans ma poche, celui de mon père, de ma mère et celui de mon mari !... www.commentcamarche.net/forum/affich-11988992-logiciel-de-genealogie-my-heritage
Télécharger Visual C++ 2008 ExpressVisual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C. www.commentcamarche.net/telecharger/telecharger-34056350-visual-c-2008-express
Télécharger Dev-C++Dev-C++ est un environnement de développement intégré (IDE) en C/C++. Son compilateur est basé sur Mingw de GCC, mais il peut également être utilisé avec CygWin. www.commentcamarche.net/telecharger/telecharger-59-dev-c
Télécharger Labo de formation C#.NetLabo de formation C#.Net représente environ 200h de formation, sous forme d'ateliers comprenant des cours au format pdf, des TD, des TP (plus de 200 exemples, exercices, mini projets sont inclus avec leurs corrections, inclus aussi un QCM de... www.commentcamarche.net/telecharger/telecharger-34058224-labo-de-formation-c-net
Terratec Cinergy C PCI HD CITélétexte, Télécommande, Tuner HD, Standard:Numérique, Interne/Extrene:Interne, EPG:Yes, Connexion:PCI, Analogique/Numérique:DVB-C www.commentcamarche.net/guide/1142131-terratec-cinergy-c-pci-hd-ci
The Settlers: Heritage of Kings - Legends ExpansionGame Expansion:Yes, Genre:Straégie, Développeur:Blue Byte, Divers:This expansion pack requires the full version of The Settlers: Heritage of Kings to play, Description:The second expansion disc for the PC RTS game The Settlers: Heritage of Kings expands.. www.commentcamarche.net/guide/750157-the-settlers-heritage-of-kings-legends-expansion
F.C Manager 2006F . . C .C .C, Genre:Sports, Nb. de joueurs hors-ligne:1, Développeur:Codemasters www.commentcamarche.net/guide/639103-f-c-manager-2006
Langage C++ - Les types de donnéesLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître... www.commentcamarche.net/contents/cpp/cpptype.php3
Les chaînes de caractères en C++Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une... www.commentcamarche.net/contents/cpp/cppstring.php3
Les structures en langage CDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de... www.commentcamarche.net/contents/c/cstruct.php3