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 :

Je n'arrive pas à voir les méthodes d'un membre


Sujet :

C++

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Je n'arrive pas à voir les méthodes d'un membre
    Bonjour tout le monde,

    J'ai une méthode qui s'appelle ProduitTrouve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bool CTraitementProduits::ProduitTrouve(const char* UnProduit)
    {
    	return m_Produits.
    }
    La classe CTraitementProduits contient une variable membre m_Produits

    Pour une raison inconnue, quand je fais m_Produits. (point) rien ne vient.

    Alors que dans les autres méthodes de la classe CTraitementProduits, j'obtiens bien les méthodes de m_Produits.

    Sauriez-vous me mettre sur une piste ?

    Merci d'avance.

    beegees

    PS: voici le code du .h concernant cette classe :

    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
    class CTraitementProduits 
    {
    public:
    	CTraitementProduits();
    	~CTraitementProduits();
     
    	bool			Charger(const char* NomFichier);
     
    	bool			AfficherAnalyse(const char* NomFichierComparaison);
     
    	void			Afficher() const;
     
    	bool			ProduitTrouve(const char* UnProduit);
     
    private:
    	CTabProduits	m_Produits;
     
    private:
     
    	static bool	FctnTraiterLigne(const CChargeurFichierTexte& Chargeur, void* Contexte);
    	bool		TraiterLigne(const CChargeurFichierTexte& Chargeur);
     
     
    };

  2. #2
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut
    Quel IDE utilises-tu?

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par r0d Voir le message
    Quel IDE utilises-tu?
    Bonjour,

    Visual C++6

    beegees

  4. #4
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Citation Envoyé par beegees Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bool CTraitementProduits::ProduitTrouve(const char* UnProduit)
    {
        return m_Produits.
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class CTraitementProduits 
    {
    //...
        CTabProduits    m_Produits;
    //...
    };
    Il n'y a rien qui te choque?

    Citation Envoyé par beegees Voir le message
    Pour une raison inconnue, quand je fais m_Produits. (point) rien ne vient.
    L'auto-complétion dépend de ton IDE, c'est pour cela que je t'ai posé la question. Je ne me souviens plus de visual6, mais je crois qu'il utilise une version pré-historique de intellisense. Peut-être qu'étant donné que ton code est incorrect, il s'emmêle les pinceaux en essayer de résoudre les scopes.

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Merci pour ta réponse.

    Non rien ne me choque, je vois pas en tout cas.

    dans cette classe je crée un objet de type d'une autre classe :

    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
    class CTraitementProduits 
    {
    public:
    	CTraitementProduits();
    	~CTraitementProduits();
     
    	bool			Charger(const char* NomFichier);
     
    	bool			AfficherAnalyse(const char* NomFichierComparaison);
     
    	void			Afficher() const;
     
    	bool			ProduitTrouve(const char* UnProduit);
     
     
     
     
    private:
    	CTabProduits	m_Produits;
     
    private:
     
    	static bool	FctnTraiterLigne(const CChargeurFichierTexte& Chargeur, void* Contexte);
    	bool		TraiterLigne(const CChargeurFichierTexte& Chargeur);
     
     
    };
    Dans les autres méthodes qui font partie de la classe CTraitementProduits , je peux accéder au méthodes de m_Produits.

    Je ne comprends pas du tout.

    Merci encore pour ton dévouement.

    beegeees

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 951
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 951
    Points : 5 671
    Points
    5 671
    Par défaut
    Hao,
    Citation Envoyé par beegees Voir le message
    Non rien ne me choque, je vois pas en tout cas.
    Une fonction censée renvoyer un bool et qui renvoie un m_Produits, ça ne te choque pas ?

    A retrouver dans quelques lignes de code explicitement montrées.

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par droggo Voir le message
    Hao,

    Une fonction censée renvoyer un bool et qui renvoie un m_Produits, ça ne te choque pas ?

    A retrouver dans quelques lignes de code explicitement montrées.
    Bonjour,

    Merci pour ta réponse.

    Je suis d'accord pour le retour mais si je fais return m_Produits.OK. OK serait une fonction renoyant un booléen, ça pourrait marcher comme ça ?

    Avec mon code actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    bool CTraitementProduits::ProduitTrouve(const char* UnProduit)
    {
    	m_Produits.
    	long n = 0;
    	for (n=0; n<= 10;n++)
    	{
     
     
    	}
    	return false;
    }
    toujours rien, pas de méthode à l'horizon après le point.

    Merci
    beegees

  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 : 50
    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
    Points : 16 213
    Points
    16 213
    Par défaut
    Avec l'intellisence de VC6, ce qui est surprenant, c'est quand il marche...

  9. #9
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Avec l'intellisence de VC6, ce qui est surprenant, c'est quand il marche...
    S'est vraiment étrange que ça ne fonctionne plus, ça fonctionne avec tous les autres. s'est incompréhensible.

    Je suis bloqué

  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
    Si tu écris le membre (sans faire attention a intellisense) et que tu compiles, est-ce que ça marche?
    Tu ne dois croire que le compilo. (et encore)

  11. #11
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Si tu écris le membre (sans faire attention a intellisense) et que tu compiles, est-ce que ça marche?
    Tu ne dois croire que le compilo. (et encore)
    oui, si je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    bool CTraitementProduits::ProduitTrouve(const char* UnProduit)
    {
    	m_Produits;
    	long n = 0;
    	for (n=0; n<= 10;n++)
    	{
     
     
    	}
    	return false;
    }
    ça marche, 0 error, 0 warning.

    m_Produits est un membre de CTraitementProduits de type CTabProduits

    Merci pour ton aide.

    beegees

  12. #12
    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
    Heu de rien mais tu ne voulais pas aussi utiliser un membre de m_Produits ?

  13. #13
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Je me permets de mettre une nouvelle réponse afin que vous soyez averti par email (si vous suivez ce sujet) et non pas éditer ma réponse précédente :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    bool CTraitementProduits::ProduitTrouve(const char* UnProduit)
    {
    	m_Produits.Nombre();
    	long n = 0;
    	for (n=0; n<= 10;n++)
    	{
     
     
    	}
    	return false;
    }
    Je n'ai aucune erreur comme cela, mais s'est étrange que l'intellisense ne fonctionne pas pour cette classe alors qu'il fonctionne pour les autres.

    Merci encore.

    beegees

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

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 629
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    Déjà, il faut bien comprendre que "l'intellisense" ou tout système permettant de trouver, selon le contexte, les membres et méthodes de tes différentes classes n'est jamais qu'une aide à l'écriture de code...

    Il en va d'ailleurs de même pour tout ce qui a trait à la coloration syntaxique, car rien ne t'empêcherait, de prime abord (hormis la nécessité d'avoir une mémoire d'éléphant et d'être plus attentif à la lecture), d'envisager d'écrire ton code en utilisant un éditeur de texte aussi basique que le bloc notes de windows

    Il ne faut donc pas t'inquiéter outre mesure si l'intellisense est victime de ratés occasionnels, d'autant plus qu'il y a quantité de raisons qui peuvent perturber son fonctionnement, et qu'en l'occurrence, tu utilise un outil "antédiluvien"

    Si tu sais pertinemment qu'un membre ou une méthode est accessible, selon le contexte où tu te trouve, mais que l'intellisense échoue à faire son travail correctement, le mieux est encore, dans l'ordre
    • de ne pas t'inquiéter outre mesure pour ton code: écrit le toi-même en toute lettres
    • d'envisager de passer à une version plus récente de ton outil dans un avenir proche

  15. #15
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Points : 833
    Points
    833
    Par défaut
    J'utilise (malgré moi) le même visual c++ 6.0 et je ne m'inquiète plus de voir l'intellisense partir en c********.
    A tout hazard place toi juste après la parenthèse fermante de ta fonction et utilise le raccourci Ctrl+espace mais je pense que le résultat sera le même.

    2 solutions (si le code compile):
    - changer d'IDE
    - ne pas se fier à l'intellisense

  16. #16
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut tout le monde,

    Un tout GRAND merci pour votre aide.

    J'ai la solution.

    La plus part d'entre vous avais raison.

    En fait, comme mon prof dit, s'est un bug de Visual Studio 6.

    Ce qu'il a fait :

    • Supprimer le fichier opt
    • Supprimer le fichier ncb


    voici son explication :

    De temps en temps, il y'a un fichier nbc et opt à supprimer parce que à un moment donné en fait il met à jour le schéma par rapport aux changements dans les classes.

    Il faut :

    - Fermer VC++ 6
    - Supprimer le fichier opt et ncb
    - Rééouvrir VC++ 6
    Et je peux vous dire que ça fonctionne maintenant.

    Merci encore à tous.

    beegees

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/05/2006, 14h30
  2. Ne pas voir les liens d'une page !
    Par nicof3 dans le forum Langage
    Réponses: 3
    Dernier message: 25/04/2006, 12h22
  3. Réponses: 3
    Dernier message: 18/11/2005, 12h27
  4. Réponses: 8
    Dernier message: 17/11/2005, 12h24
  5. [C#] Je n'arrive pas à remonter les données
    Par Le Basque dans le forum Windows Forms
    Réponses: 14
    Dernier message: 17/01/2005, 19h40

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