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 :

creation dune classe et utilisation


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Points : 45
    Points
    45
    Par défaut creation dune classe et utilisation
    salut,

    j ai cree un nouvelle classe et des methodes qui vont avec.
    J ai quelques notions de java et lorsque je créais une classe en java je pouvais m en servir dans un autre fichier que celui de la classe elle même, apparement en c++ ce n est pas le cas.
    Quelle est la solution a ce probleme ?
    Merci

  2. #2
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Il faut inclure le fichier d'entête !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "ton_fichier.h"
    Ne pas oublier d'empêcher la multi déclaration de ton header qui posera problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //ton_fichier.h
     
    #ifndef _H_MON_FICHIER
    #define _H_MON_FICHIER
     
    // ta classe
     
    #endif // _H_MON_FICHIER (commentaire pour faire propre)

    Un tour dans la FAQ ne ferait pas de mal

    Comment structurer ma classe en un fichier .h et un fichier .cpp ?

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Points : 45
    Points
    45
    Par défaut
    ok je te remercie ! desole de ne pas etre aller voir dans la faq...je debute en c++, je sais pas si j aurai fait le rapprochement entre mon probleme et la rubrique que tu m as indique

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Points : 45
    Points
    45
    Par défaut
    euh par contre j ai cherche comment on crée un .h, et j ai pas trouvé

  5. #5
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    salut,
    Citation Envoyé par le_voisin
    euh par contre j ai cherche comment on crée un .h, et j ai pas trouvé
    C'est un simple fichier texte "brut", comme tout fichier de code source (que ce soit en C, en C++, en java ou en n'importe quoi)...

    L'extension .h est une simple convention qui signifie "header"(entete), et qui indique qu'il n'y a, normalement, que les délcarations dans le fichier.

    Un compilateur, quand il est au travail ne peut en effet travailler qu'avec ce qu'il connait, et qui se limite à "ce dont il a déjà rencontré une déclaration valabe avant la ligne où il se trouve" (hormis, tu t'en doutera, les déclarations elles-memes )

    De la meme manière, les fichiers qui utilisent une classe (dans ton exemple, mais ca peut etre bien plus générique) n'auront jamais besoin que des déclarations.

    Le fichier d'implémentation (celui qui dit comment utiliser les classes déclarées) a, lui aussi, besoin des déclarations pour travailler.

    Cela donne, si tu crées une classe MaClasse, un fichier (nommé maclasse.cpp) qui prendra la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include "maclasse.h" //inclusion de la déclaration de la classe
     
    // tout le reste du code
    un fichier "maclasse.h" avec les déclarations sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #ifndef MACLASSE_H
    define MACLASSE_H
     
    class MaCLasse
    {
        //déclarations des membres et méthodes
    };
    #endif //MACLASSE_H
    et, dans tous les fichier d'entete des autres classes qui ont besoin d'utiliser MaClasse, une structure du fichier sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #ifndef MON_AUTRE_CLASSE_H //ca, c'est strictement pareil
    #define MON_AUTRE_CLASSE_H
    #include "maclasse.h" //on a besoin des déclarations de MaClasse
    class Mon_Autre_Classe
    {
        //déclarations des membres et méthodes
    };
    #endif //MON_AUTRE_CLASSE_H
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Citation Envoyé par koala01
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #ifndef MON_AUTRE_CLASSE_H //ca, c'est strictement pareil
    Au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #ifndef MON_AUTRE_CLASSE_H
    utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #ifndef H_MON_AUTRE_CLASSE
    Sujet déjà traité en C (extensible à C++ je suppose)
    http://www.developpez.net/forums/sho...t=34611&page=1

    Pour les modérateurs, FAQ à modifier ?
    Comment structurer ma classe en un fichier .h et un fichier .cpp ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Points : 307
    Points
    307
    Par défaut
    Citation Envoyé par Ti-R
    Sujet déjà traité en C (extensible à C++ je suppose)
    http://www.developpez.net/forums/sho...t=34611&page=1
    Rien de tel en C++ : les noms contenant un double underscore ou commencant par un underscore suivi d'une capitale sont reserves a l'implementation dans tous les cas. Les noms commencant par un underscore sont reserves pour le namespace global (Standard, 17.4.3.1.2). Donc aucune restriction sur les noms commencant par E.

    De plus le C ne reserve pas les noms commencant par E a l'implementation mais dit que celle ci peut utiliser des noms commencant par E et un nombre ou E et une capitale.

  8. #8
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Je vous avouerai que les prescriptions de la norme en elles-memes me passent quelques peu au dessus de la tete... pour la simple et bonne raison que je n'ai encore jamais pris la peine de les lire.

    Les arguments avancés sur http://emmanuel-delahaye.developpez.com/codage.htm me semblent, à défaut de connaitre la norme, au moins justifiés, maintenant, et sans entrer dans un domaine que j'ignore ( les normes, que ce soit du C ou du C++), je voudrais néanmoins attirer l'attention sur quelques mots présentant une forte redondance dans le texte:
    "il est d'usage (...)"
    .

    Ces trois petits mots (quatre si on compte d' pour un mot) me semblent quand meme indiquer tout le sens qu'il s'agit de donner au texte:

    1- Ce sont des CONVENTIONS
    2- Ces CONVENTIONS sont utilisées par l'auteur du texte, et sans doute par son entourage
    3- Rien n'empeche cependant d'être d'accord, au sein d'une équipe, pour utiliser d'autres conventions (hormis les restrictions posée par les normes, mais comme je ne les connais pas... ) Apres tout, la notation "hongroise" a droit de sité dans de nombreuses entreprises/équipes (notation qui m'execre au plus haut point, mais c'est un gout personnel )

    Sans vouloir juger d'aucune manière la valeur de ce texte (qui suis-je pour le faire?) j'aurais tendance, en tous cas, à ne pas le prendre *forcément* au pied de la lettre.

    Je ne remets nullement en cause les faits que la cohésion (au sein meme du code et de l'équipe de développement) et la rigueurs sont indispensables dans la gestion du projet, mais je veux juste mettre en garde contre le fait que ce qu'une (équipe de) personne(s) peut juger parfait peut très bien etre considéré comme imparfait, parce que trop/pas assez rigide, mal adapté à une situation et à l'histoire de chacun ou plein d'autres raisons, à une autre.

    Les carcans par trop rigides finissent toujours par casser à un moment où un autre
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  9. #9
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Koala01 et Roulious je suis d'accord avec vous, mais premièrement je ne suis pas sur des normes en vigueur pour inclure des fichiers, et Emmanuel Delahaye semble assez sur de lui dans l'autre thread.

    Ensuite il semble plus parler d'une norme que d'une convention personnelle (voir le dernier post du thread), j'ai d'ailleurs donné mon avis sur ma convention personnel.

  10. #10
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Je l'ai dit, mon but n'est pas de critiquer, ni l'auteur de la page fournie ne référence, ni la personne qui l'a relayée...

    Mon but est de faire prendre conscience que l'écrit est bien plus un conseil, judicieux, mais tres/trop rigide qu'une règle.

    En effet, un regle commence par "on doit" / "on ne doit pas", "il est interdit de" et autre impératifs du meme genre, éventuellement associée à des exceptions (et à des exceptions aux exceptions, comme on en trouve dans la grammaire francaise )

    C'est toute la différence entre les limitations de vitesse en Belgique et en France sur autoroute ("interdiction de dépasser le 120 km/h) et la vitesse maximale conseillée en Allemagne ("on vous conseille de ne pas dépasser le 120km/h").

    Le texte donne des conseils ("il est d'usage")...

    Libre à quiconque de les ériger, pour lui meme en regles personnelles de conduites, comme de décider de les adapter à sa propre sensibilité.

    Par contre, les gens qui décideront de leur plein gré de les ériger en règles personnelles de conduite devraient AMHA prendre le plis (je voudrais presque écrire "devraient avoir l'honneteté morale )de ne les présenter aux autres que comme ce qu'ils sont réellement.

    Encore une fois, je le répète, ce genre d'intervention n'a nullement pour but de critiquer ces conseille, dont je respecte d'ailleurs une très grande partie...
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. Probleme lors de la creation dune nouvelle classe cpp en utilisant XCODE
    Par mounak1991 dans le forum Autres éditeurs
    Réponses: 18
    Dernier message: 21/05/2014, 16h37
  2. Réponses: 0
    Dernier message: 10/05/2012, 11h37
  3. Réponses: 8
    Dernier message: 13/11/2006, 16h45
  4. Creation dune Form ds un Thread
    Par Soulama dans le forum Langage
    Réponses: 1
    Dernier message: 17/01/2006, 12h41
  5. Parseur XML to Java pour creation de Class
    Par yannick101 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 18/07/2005, 14h20

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