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 :

un pointeur qui n'est pas reconnu comme un pointeur


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [RESOLU] un pointeur qui n'est pas reconnu comme un pointeur
    Bonjour,

    j'apprends actuellement le C++ avec le bouquin de Horton.
    Me voilà à présent bloqué par des problèmes de compilation. A savoir :
    la déclaration suivante :
    CClass* pPointeur;
    me fait dire que je déclare un pointeur de la classe CClass, or j'ai une multitude d'erreurs dû au fait qu'il n'est pas reconnu comme tel.

    J'ai un problème similaire lorsque je veux déclarer une fonction qui renvoie un pointeur de cette classe, en écrivant :
    CClass* MaFonction()

    Je remercie par avance toute personne qui pourrait orienter ma recherche d'une solution.[/b]

  2. #2
    Membre actif Avatar de Grulim
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 234
    Points : 288
    Points
    288
    Par défaut
    si le compilo te dit que CClass* est inconnu, tu peux lui faire confiance
    avant de l'utiliser ajoute la ligne suivante au début de ton source:

  3. #3
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    puisque tu debutes, je vais t'expliquer la regle de base si tu as un probleme de code à expliquer.

    il faut toujours associer le descriptif d'un probleme avec le code source ( et c'est encore plus vrai lorsque le descriptif vient d'un débutant ).

    il faut donc que tu mettes ton code et l'erreur associée générée par le compilo.



    sinon pour ton probleme, je dirais qu'il est probable qu'il manque un #include "Class.h"
    il y a du linge sur la corde à linge

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Voici donc le code en question
    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 CSketcherView : public CView
    {
    protected: // create from serialization only
    	CSketcherView();
    	DECLARE_DYNCREATE(CSketcherView)
     
    // Attributes
    public:
    	CSketcherDoc* GetDocument();
     
    protected:	
    	CPoint m_FirstPoint;		//premier point enregistré pour un élément
    	CPoint m_SecondPoint;		//second point
    	CElements* m_pTempElement;	//pointeur sur l'élément temporaire
     
     
    // Operations
    public:
     
    protected:
    	CElements* CreateElement(); //crée un element dans le tas
     
    ]
    et l'erreur :

    C:\Program Files\Microsoft Visual Studio\MyProjects\Sketcher\SketcherView.h(26) : error C2501: 'CElements' : missing storage-class or type specifiers
    [/code]

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Points : 60
    Points
    60
    Par défaut
    Salut,
    Il te manque l'inclusion de ta classe CElements : #include "CElements.h" si elle s'appelle comme ça.
    Birds of a feather flock together

  6. #6
    Membre actif Avatar de Grulim
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 234
    Points : 288
    Points
    288
    Par défaut
    Citation Envoyé par cailloo
    Voici donc le code en question
    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 CSketcherView : public CView
    {
    protected: // create from serialization only
    	CSketcherView();
    	DECLARE_DYNCREATE(CSketcherView)
     
    // Attributes
    public:
    	CSketcherDoc* GetDocument();
     
    protected:	
    	CPoint m_FirstPoint;		//premier point enregistré pour un élément
    	CPoint m_SecondPoint;		//second point
    	CElements* m_pTempElement;	//pointeur sur l'élément temporaire
     
     
    // Operations
    public:
     
    protected:
    	CElements* CreateElement(); //crée un element dans le tas
     
    ]
    et l'erreur :

    C:\Program Files\Microsoft Visual Studio\MyProjects\Sketcher\SketcherView.h(26) : error C2501: 'CElements' : missing storage-class or type specifiers
    [/code]
    comme je l'ai dit plus haut, rajoute la ligne au début de ton fichier ou bien inclus le fichier entête de ta classe CElement...

  7. #7
    Membre actif Avatar de Grulim
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 234
    Points : 288
    Points
    288
    Par défaut
    ne peux-tu pas utiliser des reference au lieu de pointeur ?

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut


    Mon problème est résolu !!!!
    Effectivement il a fallu que je rajoute la directive de pré-processeur #include "Elements.h"
    je pensais que ces inclusions de fichiers devaient se faire uniquement dans les fichiers .cpp et non dans les fichiers d'en-tête, d'où mon erreur !!! A présent je me souviendrai !!

    Merci à tous !!!

    A bientôt !

  9. #9
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    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 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Tu peux aussi le faire dans le .cpp, mais il faut se souvenir de toutes les dépendances et les rappeller dans le .cpp.
    Déclaration anticipée et inclusion dans le .cpp est d'ailleurs un bon moyen de réduire les temps de recompilation.
    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...

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/01/2011, 13h26
  2. Réponses: 1
    Dernier message: 11/09/2007, 12h04
  3. Fonction qui n'est pas reconnue
    Par petitours dans le forum IHM
    Réponses: 4
    Dernier message: 17/08/2007, 15h28
  4. Netstat n'est pas reconnu comme commande interne !
    Par youcef81 dans le forum Administration
    Réponses: 1
    Dernier message: 06/09/2006, 12h15
  5. [UBUNTU] Le live cd n'est pas reconnu comme un cédérom bootable
    Par Jihed Amine Maaref dans le forum Ubuntu
    Réponses: 4
    Dernier message: 12/07/2006, 14h37

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