déclaration anticipée késako ?

Voir le sujet précédent Voir le sujet suivant Aller en bas

déclaration anticipée késako ?

Message  Froggy le Sam 07 Mar 2009, 20:00

Le terme apparait à la remarque 3 du TD2 (page 3), mais comme je ne l'avais jamais vu et que je ne parviens pas à comprendre le sens de cette même remarque ben ... je demande.

c'est probablement pas bien compliqué mais je trouve pas d'explication sur le net donc ...

J'imagine que c'est une histoire de mettre le code dans un fichier séparé des déclarations mais alors je ne comprend pas la partie de la remarque sur l'utilisation des includes uniquement dans les fichiers sources (d'ailleurs ça devrait pas fonctionner ce truc là... Shocked )?

'Fin bref, cette remarque me perturbe beaucoup...

Merci d'avance à ceux qui pourront m'éclairer ! cheers

Froggy

Nombre de messages : 49
Age : 30
Prénom : Matthieu
Statut : étudiant
Localisation : Ixelles
Date d'inscription : 05/05/2007

Revenir en haut Aller en bas

Re: déclaration anticipée késako ?

Message  Wark le Sam 07 Mar 2009, 20:09

Une déclaration anticipée c'est signaler au compilateur qu'un "Objet" est une classe. Petit exemple :

"class Pion" est une déclaration anticipée. Le compilateur sait que c'est une classe mais ne connait pas la taille de l'objet.
"#include "Pion.h" est l'inclusion du code du Pion dans une autre.

Le premier n'inclut en rien le code du Pion mais donne une idée au compilateur. Pour le second cas, le compilateur connait tout du Pion en question. La déclaration anticipée s'utilise pour éviter les inclusions multiples mais aussi pour pallier au problème :

"Classe X inclut Classe Y" et "Classe Y inclut Classe X". Avec un double include, cela poserait problème...

Ps : Je me comprends. Razz

Wark

Nombre de messages : 682
Age : 29
Prénom : Cédric
Statut : Diplômé 2010
Localisation : Braine l'alleud
Date d'inscription : 04/02/2008

Revenir en haut Aller en bas

Re: déclaration anticipée késako ?

Message  nvs le Sam 07 Mar 2009, 20:15

Wark a tout bon ! et google est ton ami, Froggy Wink developpez.com aussi d'ailleurs...






_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: déclaration anticipée késako ?

Message  Froggy le Sam 07 Mar 2009, 22:11

Merci bcp pour ces réponses rapides ! Smile

Je n'ai en effet pas penser à mettre "c++" dans ma recherche en pensant que c'était un terme de programmation plus général.

En même temps je connaissais le principe... sans en connaitre le nom.

Mais dans le cas du BMI, quelle est l'utilité de le faire ? A moins que les headers des différents widgets ne s'include les uns, les autres ?

Froggy

Nombre de messages : 49
Age : 30
Prénom : Matthieu
Statut : étudiant
Localisation : Ixelles
Date d'inscription : 05/05/2007

Revenir en haut Aller en bas

Re: déclaration anticipée késako ?

Message  nvs le Sam 07 Mar 2009, 22:43

Froggy a écrit:Mais dans le cas du BMI, quelle est l'utilité de le faire ? A moins que les headers des différents widgets ne s'include les uns, les autres ?
as-tu lu la réponse de la faq de developpez.com jusqu'au bout ?







_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: déclaration anticipée késako ?

Message  Froggy le Sam 07 Mar 2009, 23:10

En effet la dernière phrase m'a échappée.

Merci !

Froggy

Nombre de messages : 49
Age : 30
Prénom : Matthieu
Statut : étudiant
Localisation : Ixelles
Date d'inscription : 05/05/2007

Revenir en haut Aller en bas

Re: déclaration anticipée késako ?

Message  nvs le Sam 07 Mar 2009, 23:28

et pour compléter, j'indiquerais qu'on peut également utiliser les déclarations anticipées lorsqu'on a des arguments de méthode de type objet ou pointeur ou référence.

en fait, il me semble mieux de faire la liste des cas où la déclaration anticipée n'est pas suffisante :
  • en cas d'attribut de type objet ;
  • dans l'héritage ;
  • lors de la spécification de levée d'exception ;
  • lors de la déclaration d'amitié avec une méthode ;
  • avec les templates (comme string, vector, etc.) ;
  • avec les énumérations.


la liste me semble exhaustive, si j'ai oublié des cas, faites-le moi savoir Smile






_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: déclaration anticipée késako ?

Message  Contenu sponsorisé Aujourd'hui à 08:44


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum