IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

struct et class


Sujet :

C++

  1. #1
    Membre �m�rite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par d�faut struct et class
    Salut � tous.
    Une doute m'assaille, je recherche une confirmation sur une petite question simple mais pourtant je crois que seuls les quelques gourous qui trainent sur ce forum me donneront une r�ponse d�finitive: la seule diff�rence que je connais entre les mots cl�s struct et class en C++ est que les membres d'une struct sont par d�faut en public et ceux d'une classe par d�faut en private, mais est-ce qu'il en existe d'autres?
    Merci d'avance.

  2. #2
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    - Les acc�s d'h�ritage par d�faut
    - Les vieux r�flexes, de C-iens, qui tiennent � associer struct aux structures � la C seulement, et class � tout le reste

    Je crois que c'est tout.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  3. #3
    Membre �m�rite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par d�faut
    Citation Envoy� par Luc Hermitte Voir le message
    - Les acc�s d'h�ritage par d�faut
    Tu pourrais approfondir, la je ne vois pas trop de quoi tu parles?

  4. #4
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Une structure qui h�rite le fait de fa�on publique par d�faut... Une classe de fa�on priv�e.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  5. #5
    Membre �m�rite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par d�faut
    Ha, j'ignorais qu'on pouvait ne pas sp�cifier le type d'h�ritage
    Bon ben si c'est tout alors mon probl�me est r�solu, merci!

  6. #6
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par d�faut
    Je up ce topic car j'ai le m�me question. En fait, j'avais jet� un oeil dans sur comment �tait fichue la class complex de la STD c++. Dans l'ancienne version de mingw (3.4 je crois), la class complex est explicitement une class, alors que dans la derniere version que j'ai t�l�charg� aujourd'hui 4.2.1, elle n'est plus une class mais une struct. Est ce qu'il y a un argument qui justifierait ce changement?

  7. #7
    Membre Expert

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par d�faut
    Citation Envoy� par reptils Voir le message
    Je up ce topic car j'ai le m�me question. En fait, j'avais jet� un oeil dans sur comment �tait fichue la class complex de la STD c++. Dans l'ancienne version de mingw (3.4 je crois), la class complex est explicitement une class, alors que dans la derniere version que j'ai t�l�charg� aujourd'hui 4.2.1, elle n'est plus une class mais une struct. Est ce qu'il y a un argument qui justifierait ce changement?
    Est-ce qu'il y a des membres priv�s dans la classe ? Si la r�ponse est non, il n'y a aucun int�r�t � en faire une class, puisque une struct permet d'�crire la m�me chose en �tant plus clair.

    Ceci dit, le standard C++ pr�cise que la classe complex<T> est d�finie par:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    template <class T> class complex;
    template <> class complex<float>;
    template <> class complex<double>;
    template <> class complex<long double>;
    Puisqu'il est tout � fait possible d'imaginer l'utilisation une forward declaration de la classe complex<T> dans un fichier header d'un programme, j'aurais eu tendance � dire que la librairie de g++ est malform�e. Cependant, je viens de regarder la version SVN de g++, et la d�finition de complex dans la librairie standard C++ est conforme (utilisation de class au lieu de struct). Es-tu s�r que tu ne confonds pas avec complex.h (de la librairie standard C ?)
    [FAQ des forums][FAQ D�veloppement 2D, 3D et Jeux][Si vous ne savez pas ou vous en �tes...]
    Essayez d'�crire clairement (c'est � dire avec des mots fran�ais complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Caf�. C'est d�pass� tout �a.
    Et si vous �tes sages, vous aurez peut �tre vous aussi la chance de passer � la t�l�. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  8. #8
    R�dacteur/Mod�rateur
    Avatar de JolyLoic
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    5 463
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 5 463
    Par d�faut
    Citation Envoy� par reptils Voir le message
    Est ce qu'il y a un argument qui justifierait ce changement?
    L'argument psychologique cit� par Luc ? (et qui tomberait un peu � plat ici...)

    J'ai vu une fois un autre probl�me, qui �tait que sur certains compilateurs, que l'on dise class ou struct, �a revenait au m�me (sauf les acc�s par d�faut, comme sp�cifi� dans le standard), mais si on disait class � un endroit et struct � un autre pour la m�me structure de donn�e, le compilateur (l'�diteur de liens, je crois) se plantait lamentablement, car les noms �taient d�cor�s diff�remment. C'est clairement un bug du compilateur en question, mais peut-�tre que des gens on voulu le contourner ?
    Ma session aux Microsoft TechDays 2013 : D�velopper en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage � la d�couverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'h�sitez pas � me contacter.

  9. #9
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par d�faut
    Citation Envoy� par Emmanuel Deloget Voir le message
    Es-tu s�r que tu ne confonds pas avec complex.h (de la librairie standard C ?)
    non non c'est bien complex que j'ai r�cup�r� de la version 4.2.1 de mingw dans
    include\c++\4.2.1

    voici le lien
    http://reptils.free.fr/Divers/complex

    les forward declaration sont bien faite avec des class mais apres la declaration de la class est faite avec un struct... et dedans il y a un private pour d�finir les parties r�elles et imaginaires
    ou alors j'ai loup� un truc...

    En meme temps j'ai lu l� http://gcc.gnu.org/gcc-4.2/changes.html "Added support for TR1 <random>, <complex>, and C compatibility headers."
    peu etre un element de reponse

  10. #10
    Membre Expert

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par d�faut
    Citation Envoy� par reptils Voir le message
    non non c'est bien complex que j'ai r�cup�r� de la version 4.2.1 de mingw dans
    include\c++\4.2.1

    voici le lien
    http://reptils.free.fr/Divers/complex

    les forward declaration sont bien faite avec des class mais apres la declaration de la class est faite avec un struct... et dedans il y a un private pour d�finir les parties r�elles et imaginaires
    ou alors j'ai loup� un truc...

    En meme temps j'ai lu l� http://gcc.gnu.org/gcc-4.2/changes.html "Added support for TR1 <random>, <complex>, and C compatibility headers."
    peu etre un element de reponse
    Dans les commentaires :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    //
    // ISO C++ 14882: 26.2  Complex Numbers
    // Note: this is not a conforming implementation.
    // Initially implemented by Ulrich Drepper <[email protected]>
    // Improved by Gabriel Dos Reis <[email protected]>
    //
    Ils le disent eux-m�me : la librairie est malform�e.
    [FAQ des forums][FAQ D�veloppement 2D, 3D et Jeux][Si vous ne savez pas ou vous en �tes...]
    Essayez d'�crire clairement (c'est � dire avec des mots fran�ais complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Caf�. C'est d�pass� tout �a.
    Et si vous �tes sages, vous aurez peut �tre vous aussi la chance de passer � la t�l�. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  11. #11
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par d�faut
    Citation Envoy� par Emmanuel Deloget Voir le message
    Ils le disent eux-m�me : la librairie est malform�e.
    Bien vu!
    c'est quant meme assez bizarre ce genre de d�cision sachant que la premiere version �tait correctement �crite

  12. #12
    Membre Expert

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par d�faut
    Citation Envoy� par reptils Voir le message
    Bien vu!
    c'est quant meme assez bizarre ce genre de d�cision sachant que la premiere version �tait correctement �crite
    La d�cision d�pends de Gabriel Dos Rei (cf ce mail de la mailing list libstdc++). Je n'arrive pas vraiment � comprendre la raison de ce changement (si ce n'est peut �tre une vague notion de compatibilit� avec le C99 au moment du link). Je n'ai pas trouv� de rationale publi� sur le sujet, donc �a reste du domaine de l'hypoth�tique.
    [FAQ des forums][FAQ D�veloppement 2D, 3D et Jeux][Si vous ne savez pas ou vous en �tes...]
    Essayez d'�crire clairement (c'est � dire avec des mots fran�ais complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Caf�. C'est d�pass� tout �a.
    Et si vous �tes sages, vous aurez peut �tre vous aussi la chance de passer � la t�l�. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  13. #13
    R�dacteur/Mod�rateur
    Avatar de JolyLoic
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    5 463
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 5 463
    Par d�faut
    Je ne vois aucun lien entre ces messages et l'histoire de class/struct qui pour moi est tout � fait correcte dans la version pr�sent�e.
    Ma session aux Microsoft TechDays 2013 : D�velopper en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage � la d�couverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'h�sitez pas � me contacter.

  14. #14
    Membre Expert

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par d�faut
    Citation Envoy� par JolyLoic Voir le message
    Je ne vois aucun lien entre ces messages et l'histoire de class/struct qui pour moi est tout � fait correcte dans la version pr�sent�e.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    *** 113,121 ****
         *  @param  Tp  Type of real and imaginary values.
        */
        template<typename _Tp>
    !     class complex
          {
    -     public:
            /// Value typedef.
            typedef _Tp value_type;
     
    --- 113,120 ----
         *  @param  Tp  Type of real and imaginary values.
        */
        template<typename _Tp>
    !     struct complex
          {
            /// Value typedef.
            typedef _Tp value_type;
    Il y a bien un changement de class complex en struct complex.
    [FAQ des forums][FAQ D�veloppement 2D, 3D et Jeux][Si vous ne savez pas ou vous en �tes...]
    Essayez d'�crire clairement (c'est � dire avec des mots fran�ais complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Caf�. C'est d�pass� tout �a.
    Et si vous �tes sages, vous aurez peut �tre vous aussi la chance de passer � la t�l�. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  15. #15
    R�dacteur/Mod�rateur
    Avatar de JolyLoic
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    5 463
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 5 463
    Par d�faut
    Il y a effectivement eu ce "changement", mais comme il ne change rien, je suppose que les commentaires qui indiquent une non conformit� � la norme sont li�s � un autre point, en particulier cette histoire de clog mentionn�e dans le log.

    Le plus simple est d'envoyer un mail � Gaby pour confirmer, qui s'en charge ?
    Ma session aux Microsoft TechDays 2013 : D�velopper en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage � la d�couverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'h�sitez pas � me contacter.

  16. #16
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par d�faut
    j'aimerai bien, mais j'ai pas le background c++ suffisant pour le faire

  17. #17
    Expert confirm�

    Inscrit en
    Novembre 2005
    Messages
    5 145
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par d�faut
    Citation Envoy� par JolyLoic Voir le message
    Il y a effectivement eu ce "changement", mais comme il ne change rien, je suppose que les commentaires qui indiquent une non conformit� � la norme sont li�s � un autre point, en particulier cette histoire de clog mentionn�e dans le log.

    Le plus simple est d'envoyer un mail � Gaby pour confirmer, qui s'en charge ?
    A mon avis, le changement n'impacte en rien la conformit�. Il �tait peut-�tre n�cessaire pour profiter des built-in de gcc -- ce qui serait alors plut�t une limitation de ce syst�me qu'autre chose.

  18. #18
    Membre Expert

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par d�faut
    Citation Envoy� par JolyLoic Voir le message
    Il y a effectivement eu ce "changement", mais comme il ne change rien, je suppose que les commentaires qui indiquent une non conformit� � la norme sont li�s � un autre point, en particulier cette histoire de clog mentionn�e dans le log.

    Le plus simple est d'envoyer un mail � Gaby pour confirmer, qui s'en charge ?
    Je l'ai fait hier, mais laissons lui le temps de r�pondre
    [FAQ des forums][FAQ D�veloppement 2D, 3D et Jeux][Si vous ne savez pas ou vous en �tes...]
    Essayez d'�crire clairement (c'est � dire avec des mots fran�ais complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Caf�. C'est d�pass� tout �a.
    Et si vous �tes sages, vous aurez peut �tre vous aussi la chance de passer � la t�l�. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Passer de struct (C) � class (JAVA)
    Par rtg57 dans le forum Langage
    R�ponses: 8
    Dernier message: 01/05/2010, 22h50
  2. [D�butant] Struct v Class !
    Par F.Saad dans le forum C#
    R�ponses: 3
    Dernier message: 27/07/2009, 12h21
  3. diff entre struct et class
    Par camboui dans le forum C++
    R�ponses: 7
    Dernier message: 02/03/2009, 18h53
  4. Struct et classes
    Par oodini dans le forum C++
    R�ponses: 3
    Dernier message: 14/08/2008, 18h03
  5. Struct ou classe ?
    Par Fl0r3nt dans le forum C++
    R�ponses: 8
    Dernier message: 27/06/2007, 11h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo