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 :

Aide pour un debutant en C++!!!


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Par défaut Aide pour un debutant en C++!!!
    Salut, J'ai besoin d'un peu d'aide sur ca et ca serait gentil de me repondre. en fait, je maitrise assez bien le language C et maintenant je m'attaque au C++. j'ai fais ce petit programme pour voir l'effet du constructeur et destructeur. Or ce programme ne veut pas fonctionner et le compilateur me sort un linker erreur. Vous pouvez m'aider à voir où se trouve mon erreur. Merci d'avance.
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    #include<iostream.h>
    class test
    { static int n;
    int x,y;
    public:
    test();        
    ~test();
    };
     
    test::test()
    { n++;
    cout << "il y'a" << n << "objets";
    }
     
    test::~test()
    { n--;
    cout << "il reste" << n << "objets";
    }
     
    main()
    { test s,t;
     void f();
     f();
    }
    void f()
    { test m;
    }

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    salut,

    as tu lus les règles du forum???

    - il n'y a pas une question plus urgente qu'une autre
    - bonjour, SVP, ... un peu de politesse sinon tu n'auras pas toujours de réponses
    - pas la balise QUOTE

    ce sont des aspects importants. personnellement je n'ai pas encore lu ta question, mais je réagis sur ces points qui me paraissent importants

    note : s'ils y a des erreurs, il ne suffit pas de le signaler, il faut également afficher le message d'erreur. on est pas devin, on ne peut pas toujours savoir pourquoi ça ne marche pas et le message d'erreur est là pour nous renseigner

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut Re: Aide pour un debutant en C++!!!
    sinon bienvenu au club.
    chui parfois agressif, mais c'est pour la bonne cause

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #include<iostream>
     
    class test
    {
    private:
       static int n;
       int x,y;
    public:
       test();        
       ~test();
    };
     
    test::test()
    {
       n++;
       cout << "il y'a" << n << "objets";
    }
     
    test::~test()
    { 
       n--;
       cout << "il reste" << n << "objets";
    }
     
    main()
    {
       test s,t;
       f();
    }
    void f()
    {
       test m;
    }

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Par défaut
    Citation Envoyé par bigboomshakala
    salut,

    as tu lus les règles du forum???

    - il n'y a pas une question plus urgente qu'une autre
    - bonjour, SVP, ... un peu de politesse sinon tu n'auras pas toujours de réponses- pas la balise QUOTE

    ce sont des aspects importants. personnellement je n'ai pas encore lu ta question, mais je réagis sur ces points qui me paraissent importants
    t'as raison pour la balise !!! mais par contre je vois que vous avez pas lu "merci d'avance" dans mon post.

  5. #5
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    si si j'ai vu le merci (après coup). d'ailleurs j'ai éditer mon post. au départ j'avais mis "- bonjour, SVP, merci..."

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Par défaut
    bigboomshakala, merci de m'avoir repondu mais c'est pas ca la reponse car je l'ai deja essayé. en plus, le mot "private" au debut ne change rien car les instances de la classe qui sont ecrites en premier sont par defaut initialisés à "private". Merci encore.

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Par défaut Re: Aide pour un debutant en C++!!!
    Citation Envoyé par bigboomshakala
    sinon bienvenu au club.
    chui parfois agressif, mais c'est pour la bonne cause
    merci mais je viens deja ici (t'as qu'à voir ma date d'inscription) mais pas pour ecrire. je lis seulement. or cette fois j'avais besoin d'aide.

  8. #8
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    tu n'as pas regardé le code que je te donne. il n'y a pas que "private" qui a changé

    les erreurs que j'ai corrigés commencent dès l'include, pour finir quelques lignes avant la fin

  9. #9
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Par défaut
    Oh la c'est tendu ce soir!!!
    Salut a toi El_Tunisiano!!!
    Voila en C++ ne met pas d'extension ".h" aux fichier de la bibli.
    Ensuite il te faut inclure l'espace de nom (Je sais pas si ça existe en C) std dans lequel cout et cin sont définis,sinon le compilo ne sait pas ce que cela veut dire.
    Enfin un membre statique doit etre initialisé en dehors de la déclaration de la classe.
    Voila, a part ça il est bien ton programme!
    J'ai rajouté qques formatages.Sinon tu as bien raison de déclarer f dans main() !!

    donc finalement voila le code
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    #include<iostream>
    using namespace std; 
    class test 
    { static int n; 
    int x,y; 
    public: 
    test(); 
    ~test(); 
    }; 
    int test::n=0;
    test::test() 
    { n++; 
    cout << "il y'a " << n << " objets"<<endl; 
    } 
     
    test::~test() 
    { n--; 
    cout << "il reste " << n << " objets"<<endl; 
    } 
     
    main() 
    { test s,t; 
    void f(); 
    f(); 
    } 
    void f() 
    { test m; 
    }
    Bon courage pour la suite, à bientot et ......c'est qui qui a gané la CAN ?!!!!

  10. #10
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    ah j'avais oublié le using namespace std.

    Citation Envoyé par porcher
    Sinon tu as bien raison de déclarer f dans main() !!
    pas d'accord ?!
    il suffit d'implémenter la fonction f avant le main. je ne vois pas l'utilité de faire une déclaration avancée alors que la fonction est implémentée dans le même fichier.

  11. #11
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Par défaut
    bigboomshakala a dit:
    je ne vois pas l'utilité de faire une déclaration avancée
    Oui bien sur mais dans ta 2eme réponse à El_Tunisiano
    tu avais inclus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    main() 
    { 
       test s,t; 
       f(); 
    } 
    void f() 
    { 
       test m; 
    }
    et la c'etait pas bon.C'est tout ce que j'avais voulu dire...
    Bonsoir a toi

  12. #12
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    oui il se fait tard et je fatigue

    bonne nuit

  13. #13
    Membre confirmé Avatar de hamster
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 137
    Par défaut
    Citation Envoyé par porcher
    Voila en C++ ne met pas d'extension ".h" aux fichier de la bibli.
    Ensuite il te faut inclure l'espace de nom (Je sais pas si ça existe en C) std dans lequel cout et cin sont définis,sinon le compilo ne sait pas ce que cela veut dire.
    Hmm...
    ça dépend de ton environnement de développement !
    c'est peut-être vrai avec Visual Studio .NET, mais avec Visual 6.0 on peut tout à fait écrire et ne pas écrire

  14. #14
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    salut,

    non non il ne faut pas mettre iostream.h
    bien sur ça compilera parce que VC++6 contient les 2 fichiers (iostream et iostream.h). mais celui avec .h est dépréciée depuis 1998 !!!!
    il n'est là que pour assurer la compatibilité avec les vieux codes source.

    quant au 'using namespace std;' tu ne peu l'éviter quand utilisant 'using std::le_nom' pour chaque commande du namespace std. bien sur si tu n'utilises aucune commande de std tu n'auras besoin de rien. mais dans le cas contraire c'est obligé.

  15. #15
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Pour les histoires de .h et de using namespace std, merci de lire là FAQ C++, tout est expliqué

  16. #16
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut Re: Aide pour un debutant en C++!!!
    Il me semble qu'on est obligé de définire les variables membres static en dehors de la déclaration de la classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class test
    { 
    private:
        static int n;
        int x,y;
    public:
        test();        
        ~test();
    };
     
    int test::n = 0; // <-- ICI !

  17. #17
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Par défaut Re: Aide pour un debutant en C++!!!
    Citation Envoyé par jmv
    Il me semble qu'on est obligé de définire les variables membres static en dehors de la déclaration de la classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class test
    { 
    private:
        static int n;
        int x,y;
    public:
        test();        
        ~test();
    };
     
    int test::n = 0; // <-- ICI !
    c'est effectivement ca, je pnesais que les membres statics etaient automatiquement initialisés à 0. !!! merci à tous ceux qui m'ont aidés.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Aide pour un debutant (freeplayer)
    Par ppfromero dans le forum Debian
    Réponses: 4
    Dernier message: 17/02/2008, 20h26
  2. aide pour code debutant ssh
    Par youkisall dans le forum Administration système
    Réponses: 1
    Dernier message: 28/01/2008, 09h48
  3. Aide pour un debutant en VB 6.0
    Par macfly77 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/11/2006, 08h39
  4. Un peu d'aide pour un debutant
    Par Auvergnator dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 18/09/2006, 21h16
  5. aide pour un debutant en oracle
    Par hamadi_insat dans le forum Oracle
    Réponses: 5
    Dernier message: 28/08/2006, 20h02

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