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

Visual C++ Discussion :

La compilation de construcreurs hors d'une classe


Sujet :

Visual C++

  1. #1
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut La compilation de construcreurs hors d'une classe
    Bonjour,
    J'ai compilé un constructeur et un destructeur Mais il ne sont pas reconnus par le compilateur
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    /*******************************************************************************
    * FILE NAME: Analyse.cpp
    * PURPOSE:   This file contains implementation of the methods of
    *            CPOS class.
    * HISTORY:
    * Date        Version                   Author
    * 26/06/2003  initial version :1.0      SEG
    *******************************************************************************/
     
    //--------------------------- INCLUDE-FILES ------------------------------------
    #include "StdAfx.h"
    #include "AlignStructure.h"
    #include "Macro.h"
    #include "Enumerations.hpp"
    #include "Structure.h"
    #include "TypeDefs.hpp"
    #include "Layout.h"
    #include "POS.h"
    #include "Layout.h"
    #include "ClassesAligner.hpp"
    #include "LinkDescription.h"
    #include "Message.h"
    #include "Analyse.h"
     
    //----------------------------GLOBAL DATA---------------------------------------
    extern int nParagraph;
    //----------- METHOD IMPLEMENTATION OF CAnalyse Class -------------------------
    namespace SpecificationLoader
    {
        using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
    	using namespace System::Runtime::InteropServices;
     
     
     
    CAnalysedSegment()
    {
       pLinguisticSegment = NULL;
       pSegmentLayout = NULL;
    }
     
    extern CLinguisticSegment* pLinguisticSegment
    extern CLayout* pSegmentLayout;
     
     
    ~CAnalysedSegment()
    {
    // On s'occuppe d'abord du pLinguisticSegment
    et le compilateur me répond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(41): error C2059: erreur de syntaxe*: ')'
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(42): error C2143: erreur de syntaxe*: absence de ';' avant '{'
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(42): error C2447: '{'*: en-tête de fonction manquant (liste formelle à l'ancien format*?)
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(48): error C2144: erreur de syntaxe*: 'int' doit être précédé de ';'
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(48): error C2143: erreur de syntaxe*: absence de ';' avant '*'
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(48): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(48): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(51): error C2588: '::~CAnalysedSegment'*: destructeur global non conforme
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(52): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(104): warning C4508: 'SpecificationLoader::CAnalysedSegment'*: la fonction doit retourner une valeur*; type de retour 'void' pris par défaut
    Qui m'aidera sera

  2. #2
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut J'ai essayé
    J'ai essayé de déclarer une classe, mais ça a générer des messages que je ne comprend pas:
    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
    34
    35
    /*******************************************************************************
     * NOM:
     * ROLE:
     * HISTORIQUE:
        * 05/05/2001, xxx, initial version
    *******************************************************************************/
    #ifndef ANALYSE_H
    #define ANALYSE_H
    /*_____INCLUDE-FILES__________________________________________________________*/
    namespace SpecificationLoader
    {
        using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
     
     
    /*_____GLOBAL-DEFINE__________________________________________________________*/
    /*_____GLOBAL-TYPES___________________________________________________________*/
    	class CAnalysedSegmnt
    	{
    	public:
    		CAnalysedSegment::CAnalysedSegment();
    		CAnalysedSegment::~CAnalysedSegment();
    		static void CAnalysedSegment::DoIt(void);
    	};
    };
    /*_____GLOBAL-DATA____________________________________________________________*/
    /*_____GLOBAL-MACROS__________________________________________________________*/
    /*_____GLOBAL-FUNCTIONS-PROTOTYPES____________________________________________*/
     
    #endif /* ANALYSE_H */
    les messages d'erreurs sont ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    1>D:\usr\Memoria\dev\Linguistic\Analyser\com\Analyse.h(26): error C3254: 'SpecificationLoader::CAnalysedSegmnt'*: la classe contient une substitution explicite '{ctor}', mais ne dérive pas d'une interface qui contient la déclaration de fonction
    1>D:\usr\Memoria\dev\Linguistic\Analyser\com\Analyse.h(26): error C2838: '{ctor}'*: nom qualifié non conforme dans une déclaration de membre
    1>D:\usr\Memoria\dev\Linguistic\Analyser\com\Analyse.h(27): error C3254: 'SpecificationLoader::CAnalysedSegmnt'*: la classe contient une substitution explicite '{dtor}', mais ne dérive pas d'une interface qui contient la déclaration de fonction
    1>D:\usr\Memoria\dev\Linguistic\Analyser\com\Analyse.h(27): error C2838: '{dtor}'*: nom qualifié non conforme dans une déclaration de membre
    1>D:\usr\Memoria\dev\Linguistic\Analyser\com\Analyse.h(28): error C2039: 'DoIt'*: n'est pas membre de 'SpecificationLoader::CAnalysedSegment'

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Wow, tu oublies jusqu'aux principes du C++ normal et tu fais tout à l'envers:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //MaClasse.h
     
    namespace mon_namespace
    {
     
    class MaClasse
    {
    public:
    	MaClasse();
    	~MaClasse();
    };
     
    }//mon_namespace
    Code C++ : 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
    //MaClasse.cpp
    #include "MaClasse.h"
     
    namespace mon_namespace
    {
     
    	MaClasse::MaClasse()
    	{
    		//blabla
    	}
    	MaClasse::~MaClasse()
    	{
    		//blabla
    	}
     
    }//mon_namespace
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut J'ai donc codé
    le code suivant:
    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
    34
    35
    /*******************************************************************************
     * NOM:
     * ROLE:
     * HISTORIQUE:
        * 05/05/2001, xxx, initial version
    *******************************************************************************/
    #ifndef ANALYSE_H
    #define ANALYSE_H
    /*_____INCLUDE-FILES__________________________________________________________*/
    namespace SpecificationLoader
    {
        using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
     
     
    /*_____GLOBAL-DEFINE__________________________________________________________*/
    /*_____GLOBAL-TYPES___________________________________________________________*/
    	class CAnalysedSegmnt
    	{
    	public:
    		CAnalysedSegment();
    		~CAnalysedSegment();
    		static void DoIt(void);
    	};
    };
    /*_____GLOBAL-DATA____________________________________________________________*/
    /*_____GLOBAL-MACROS__________________________________________________________*/
    /*_____GLOBAL-FUNCTIONS-PROTOTYPES____________________________________________*/
     
    #endif /* ANALYSE_H */
    et le fichier de 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    /*******************************************************************************
    * FILE NAME: Analyse.cpp
    * PURPOSE:   This file contains implementation of the methods of
    *            CPOS class.
    * HISTORY:
    * Date        Version                   Author
    * 26/06/2003  initial version :1.0      SEG
    *******************************************************************************/
     
    //--------------------------- INCLUDE-FILES ------------------------------------
    #include "StdAfx.h"
    #include "AlignStructure.h"
    #include "Macro.h"
    #include "Enumerations.hpp"
    #include "Structure.h"
    #include "TypeDefs.hpp"
    #include "Layout.h"
    #include "POS.h"
    #include "Layout.h"
    #include "ClassesAligner.hpp"
    #include "LinkDescription.h"
    #include "Message.h"
    #include "Analyse.h"
     
    //----------------------------GLOBAL DATA---------------------------------------
    extern int nParagraph;
    //----------- METHOD IMPLEMENTATION OF CAnalyse Class -------------------------
    namespace SpecificationLoader
    {
        using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
    	using namespace System::Runtime::InteropServices;
     
     
     
    CAnalysedSegment::CAnalysedSegment()
    {
       pLinguisticSegment = NULL;
       pSegmentLayout = NULL;
    }
     
    extern CLinguisticSegment* pLinguisticSegment
    extern CLayout* pSegmentLayout;
     
     
    CAnalysedSegment::~CAnalysedSegment()
    {
    // On s'occuppe d'abord du pLinguisticSegment
      std::list<CAnalysedWord *>::iterator   itWord;
      std::list<CElementSemantique *>::iterator  itNgram;
      std::list<CAnalysedChunk *>::iterator  itChunk;
      int ilen;
     
      if( pLinguisticSegment != NULL)
      {
        ilen = pLinguisticSegment->ListProposition.size();
    	itNgram = pLinguisticSegment->ListProposition.begin();
        while (itNgram != pLinguisticSegment->ListProposition.end() )
        {
           if( nParagraph != 19 && ilen != 1)
    	   {
    		 (*itNgram)->ListChunk.clear();
             delete (*itNgram);
    	   }
           (*itNgram) = NULL;
           itNgram++;
    	   ilen--;
        }
        pLinguisticSegment->ListProposition.clear();
        itChunk = pLinguisticSegment->ListChunk.begin();
        while (itChunk != pLinguisticSegment->ListChunk.end() )
        {
            (*itChunk)->ListWord.clear();
            delete (*itChunk);
            (*itChunk) = NULL;
            itChunk++;
        }
        pLinguisticSegment->ListChunk.clear();
        itWord = pLinguisticSegment->ListWord.begin();
        while (itWord != pLinguisticSegment->ListWord.end() )
        {
           delete (*itWord);
           (*itWord) = NULL;
           itWord++;
        }
        pLinguisticSegment->ListWord.clear();
        if (pLinguisticSegment != NULL)
        {
            delete pLinguisticSegment;
            pLinguisticSegment = NULL;
        }
      }
      // Puis du pSegmentCluesDescription
      if (pSegmentLayout != NULL)
      {
            delete pSegmentLayout;
            pSegmentLayout = NULL;
      }
    }
    void DoIt(void)
    {
    }
    };
    et j'ai les messages d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    1>D:\usr\Memoria\dev\Linguistic\Analyser\com\Analyse.h(26): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
    1>D:\usr\Memoria\dev\Linguistic\Analyser\com\Analyse.h(26): warning C4183: 'CAnalysedSegment'*: type de retour manquant*; fonction membre retournant 'int' prise par défaut
    1>D:\usr\Memoria\dev\Linguistic\Analyser\com\Analyse.h(27): error C2523: 'SpecificationLoader::CAnalysedSegmnt::~CAnalysedSegment'*: balise destructeur non correcte
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(48): error C2144: erreur de syntaxe*: 'int' doit être précédé de ';'
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(48): error C2143: erreur de syntaxe*: absence de ';' avant '*'
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(48): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
    1>..\..\..\..\Linguistic\Analyser\src\Analyse.cpp(48): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut

  5. #5
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut la solution
    il fallait retirer les fautes d’orthographe.

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

Discussions similaires

  1. [Compilation] probleme de linking avec une classe
    Par deubelte dans le forum C++
    Réponses: 6
    Dernier message: 17/02/2015, 23h19
  2. Réponses: 3
    Dernier message: 04/09/2007, 16h00
  3. Réponses: 2
    Dernier message: 29/06/2006, 16h33
  4. [NetBeans] [struts] Compiler une classe
    Par Invité dans le forum NetBeans
    Réponses: 2
    Dernier message: 29/12/2005, 17h17
  5. [Debutant(e)]Compiler une classe
    Par tscoops dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 27/05/2004, 13h50

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