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++/CLI Discussion :

error C2143 Error de definition de variables


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut error C2143 Error de definition de variables
    bonjour a tous
    bon , ben , je pense que le titre est assé explicite et parle à tout le monde
    voici donc la partie du code fautive :

    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
     
    #ifndef CLASS_WEAPON
    #define CLASS_WEAPON
    #include "stdafx.h"
    #include "character.h"
    #include "Missile.h"
    using namespace System;
    using namespace System::Collections;	
    using namespace System::Collections::Generic;
    using namespace Microsoft::Xna::Framework;
     
    using namespace Microsoft::Xna::Framework::Content;
    using namespace Microsoft::Xna::Framework::Graphics;
    using namespace Microsoft::Xna::Framework::Input;
     
    ref class Weapon
    {
    private:
    	int Damage;
    	String ^Name;
    	int Number;
    	bool Status;
    	Vector2 ^Position;
    	ArrayList ^Munitions;
    	Vector2 ^InitialPosition;
    	character ^Owner;  /*<<<<< le compilateur me designe cette ligne*/
    public:
     
    	///<summary>
    	///Weapon constructor
    	///<summary>
    	Weapon(int number,Microsoft::Xna::Framework::Vector2 ^_Position);
    je vous épargne le header complet
    voila donc la premiere partie ( vous allez comprendre )
    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
     
    #ifndef CLASS_CHARACTER
    #define CLASS_CHARACTER
    #include "stdafx.h"
    #include "MObject.h"
    #include "Weapon.h"
     
    using namespace System;
    using namespace System::Collections;	
    using namespace System::Collections::Generic;
    using namespace Microsoft::Xna::Framework;
     
    using namespace Microsoft::Xna::Framework::Content;
    using namespace Microsoft::Xna::Framework::Graphics;
    using namespace Microsoft::Xna::Framework::Input;
     
     
    ref class character : MObject
    {
    private:
    		///<summary>
    		/// health of the character
    		///</summary>
    		int Health;
    		///<summary>
    		///weapon of the character
    		///</summary>   
    		Weapon ^ Weap;    /*<<<<< le compilateur me designe cette ligne*/
    		///<summary>
    		///Aim angle of the character
    		///</summary>
    		float Angle;
    		///<summary>
    		///Position of the character
    		///</summary>
    		Vector2 ^ Position;
     
    public :
     		///<summary>
    		///constructor of character
    		///<param name="Health"> The health of the character</param>
    		///<param name="PositionX"> The X position of the character</param>
    		///<param name="PositionY"> The Y position of the character</param>
    		///</summary>
    	character::character(int _Health,float PositionX,float PositionY,Weapon ^_Weapon);
    et voici donc l'autre header .
    bon , comme on peut le voir , il y a un appel récursif , mais l'erreur ne vient pas de la ( j'ai deja testé )

    et voici donc le message d'erreur que me sort Visual

    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
     
    1>Compiling...
    1>Weapon.cpp
    1>d:\dossier seconde année espagne\goip\goip\goip\character.h(28) : error C2143: syntax error : missing ';' before '^'
    1>d:\dossier seconde année espagne\goip\goip\goip\character.h(28) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>d:\dossier seconde année espagne\goip\goip\goip\character.h(28) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>d:\dossier seconde année espagne\goip\goip\goip\character.h(45) : error C2061: syntax error : identifier 'Weapon'
    1>character.cpp
    1>d:\dossier seconde année espagne\goip\goip\goip\Weapon.h(25) : error C2143: syntax error : missing ';' before '^'
    1>d:\dossier seconde année espagne\goip\goip\goip\Weapon.h(25) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>d:\dossier seconde année espagne\goip\goip\goip\Weapon.h(25) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>Generating Code...
    1>Build log was saved at "file://d:\dossier seconde année espagne\GOIP\Goip\Goip\Debug\BuildLog.htm"
    1>Goip - 7 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    voila donc mon probleme , merci a tous pour votre aide ( meme maigre )

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    quelle est la ligne qui provoque l'erreur ?

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    bonjour

    le compilateur me designe ces deux lignes

    character ^Owner; /*<<<<< le compilateur me designe cette ligne*/

    Weapon ^ Weap; /*<<<<< le compilateur me designe cette ligne*/

    voila , si vous souhaitez plus de precisions .
    je suis tout a vous

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    il doit te falloir une déclaration anticipée

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    d'accord... mais heeeeeu , qu'est-ce donc ? une declaration anticipée

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    en général, on en a besoin quand il y a des dépendances croisées.
    on déporte l'implémentation de la classe dans un .cpp et on déclare de manière anticipée la classe qu'on veut référencer.

    genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ref class Weapon;
     
    ref class character
    {
      // ici la définition de la classe
      // l'implémentation (qui va utiliser un objet de type Weapon, sera faite dans le .cpp correspondand
    };

  7. #7
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    yay !!

    merci beacoup nico-pyright(c)

    a present ça marche ^^
    hop ! je passe le thread en "resolu" ^^

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/03/2010, 16h44
  2. Réponses: 2
    Dernier message: 22/08/2009, 19h10
  3. Réponses: 27
    Dernier message: 16/03/2009, 09h36
  4. Réponses: 2
    Dernier message: 26/06/2007, 23h49
  5. error C2143-point virgule mais ou ca?
    Par mamok dans le forum Visual C++
    Réponses: 11
    Dernier message: 22/09/2006, 12h34

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