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 :

C++ avec Visual Studio 2010


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Points : 11
    Points
    11
    Par défaut C++ avec Visual Studio 2010
    Bonjour,

    Je débute avec le C++ sur Visual Studio 2010.

    Je veux réaliser une classe C_noeud qui permet de représenter un noeud dans une arborescence.

    J'ai créé le .h et le main, mais j'ai des soucis avec le .cpp

    Voici ce que ça donne :

    C_noeud.h
    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
     
    #pragma once
    #define Taillemax 1000
     
    class C_noeud
    {
     
    private:
    	int iNOEprofondeur;
    	int iNOEnbre_elements;
    	int piNOEliste_elements[Taillemax];
    	float fNOEbinf;
    	int iNOEnbre_restants;
    	int piNOEliste_restants[Taillemax];
    	static int iNOEcompteur;
     
    public:
    	C_noeud();
    	C_noeud(const C_noeud &);
    	void NOEajouter_element(int &valeur);
    	int NOEretirer_restant();
    	void NOEajouter_restant(const int &);
    	int NOEnbre_elements();
    	int NOEnbre_restants();
    	float NOEcalculer_binf();
    	void NOEafficher_restants();
    	void NOEafficher_elements();
    	static int NOElire_compteur();
    };
    main.cpp

    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
     
    #include <iostream>
    #include "C_noeud.h"
     
    int main()
    {
    	int itmp=0;
     
       C_noeud NOEnoeud,NOEnoeud1=NOEnoeud; // Ou NOEnoeud1(NOEnoeud)
     
       int iBoucle;
     
       /*On ajoute les restants de NOEnoeud (0 à 49)*/
       for(iBoucle=0;iBoucle<50;iBoucle++)
    	   NOEnoeud.NOEajouter_restant(iBoucle);
     
       /*Affichage de NOEnoeud*/
       NOEnoeud.NOEafficher_restants();
     
       /*On retire un à un les restants de NOEnoeud et on les ajoute dans NOEnoeud1*/
        for(iBoucle=0;iBoucle<50;iBoucle++)
    	{
    	itmp=NOEnoeud.NOEretirer_restant();
    	NOEnoeud1.NOEajouter_element(itmp);	
    	}
     
    	/*Affichage de NOEnoeud1*/
    	NOEnoeud1.NOEafficher_elements();
     
       return 0;
    }
    Et C_noeud.cpp :

    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
     
    #include "C_noeud.h"
    #include <iostream>
     
    int C_noeud::iNOEcompteur=0;
     
    C_noeud::C_noeud(void)
    {
    	iNOEprofondeur=0;
    	iNOEnbre_elements=0;
    	fNOEbinf=0;
    	iNOEnbre_restants=0;
    	// iNOEcompteur=0; On ne peut pas car static (Placé en haut)
    	iNOEcompteur++;
    }
     
    /*Ajoute la valeur en fin de liste piNOEliste_elements */
    void NOEajouter_element(int &valeur){
    	piNOEliste_elements[iNOEnbre_elements+1]=valeur;
     
    }
    Mon problème est dans la procédure void NOEajouter_element(int &valeur), piNOEliste_elements et iNOEnbre_elements ne sont pas reconnus.

    Il y a surement quelquechose que je fais mal, merci de m'éclairer.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Erreur classique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void C_noeud::NOEajouter_element(int &valeur)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    Ah, je ne savais pas!

    Il faut utiliser cette syntaxe pour chaque procédure/fonction ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    Et pourquoi cout n'est pas reconnu dans cette fonction ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    /*Affiche le contenu de piNOEliste_restants*/
    void C_noeud::NOEafficher_restants(){
    	int iBoucle=0;
     
    	while (iBoucle<NOEnbre_restants()){
    		cout << piNOEliste_restants[iBoucle] << ", ";
    		iBoucle++;
    	}
    }

    Merci beaucoup de m'aider.

  5. #5
    Membre habitué Avatar de Xtrem_Voyageur
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2009
    Messages : 85
    Points : 154
    Points
    154
    Par défaut
    Car cout se trouve être une fonction se trouvant dans l'espace de nom std
    Donc :
    -soit tu utilises les using directives et tu mets en début de programme comme le font beaucoup de débutants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    using namespace std;
    Mais ceci n'est pas conseillé car tu rends alors disponibles toutes les fonctions du standard (si tu as mis les bonnes entêtes évidemment) sans besoin de les qualifier de l'espace de nom std::.
    -Soit tu préfixes ton cout de std::
    (tu pourrais aussi inclure using namespace std; dans une portée spécifique pour que l'inclusion ne dépasse pas cette portée)

    Mon conseil : lis un bon cours de c++

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    Merci

    Dernière petite question pour la route :

    quand je veux lancer un test, la console s'ouvre et se referme instantanément, comment cela se fait-il ?

    'Exercice.exe'*: Chargé 'D:\Documents\Visual Studio 2010\Projects\Exercice\Debug\Exercice.exe', Les symboles ont été chargés.
    'Exercice.exe'*: Chargé 'C:\Windows\System32\ntdll.dll', Cannot find or open the PDB file
    'Exercice.exe'*: Chargé 'C:\Windows\System32\kernel32.dll', Cannot find or open the PDB file
    'Exercice.exe'*: Chargé 'C:\Windows\System32\KernelBase.dll', Cannot find or open the PDB file
    'Exercice.exe'*: Chargé 'C:\Windows\System32\msvcp100d.dll', Les symboles ont été chargés.
    'Exercice.exe'*: Chargé 'C:\Windows\System32\msvcr100d.dll', Les symboles ont été chargés.
    Le programme '[6892] Exercice.exe: Natif' s'est arrêté avec le code 0 (0x0).
    Merci.

  7. #7
    Membre émérite

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Points : 2 252
    Points
    2 252
    Par défaut
    Parce que ton programme a atteint la fin du main, donc il s’arrête ?

    Pour faire une pause avant de sortir du programme, sous Windows, rajoute avant la fin du main : system("PAUSE");

  8. #8
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonjour,

    Citation Envoyé par R3MIX Voir le message
    quand je veux lancer un test, la console s'ouvre et se referme instantanément, comment cela se fait-il ?
    Il faut mettre un point d'arrêt à la fin du main (quand on peut...).

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup, tout fonctionne

  10. #10
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Une alternative plus "safe" à system("pause") : std::cin.ignore();

Discussions similaires

  1. [Article] Déploiement Web avec Visual Studio 2010
    Par Nicolas Esprit dans le forum Visual Studio
    Réponses: 23
    Dernier message: 15/11/2013, 10h47
  2. Réponses: 6
    Dernier message: 17/08/2010, 14h19
  3. Silverlight 3 et 4 avec Visual studio 2010
    Par miche19000 dans le forum Silverlight
    Réponses: 3
    Dernier message: 06/07/2010, 17h12

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