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 :

Problemes de switch et de déclarations.


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut Problemes de switch et de déclarations.
    Bonjour.

    je teste quelques classe pour lesquelles laurent gomila m'a gracieusement aidé, mais je rencontre quelques problèmes au moment de les tester... entre autre:
    Citation Envoyé par débogueur
    ------ Début de la génération : Projet : Moteur physique, Configuration : Debug Win32 ------
    Compilation en cours...
    convert.cpp
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\convert.cpp(45) : error C2065: 'point1' : identificateur non déclaré
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\convert.cpp(45) : error C3861: 'point2' : identificateur introuvable
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\convert.cpp(49) : error C2228: la partie gauche de '.GetCoord' doit avoir un class/struct/union
    le type est ''unknown-type''
    Points.cpp
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(10) : error C2065: 'theta' : identificateur non déclaré
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(15) : error C2572: 'Carth::GetCoord' : redéfinition du paramètre par défaut : paramètre 1
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.h(27) : voir la déclaration de 'Carth::GetCoord'
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(17) : error C2061: erreur de syntaxe : identificateur 'num'
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(17) : error C2143: erreur de syntaxe : absence de ';' avant '{'
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(18) : error C2046: instruction case non conforme
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(20) : error C2043: instruction break non conforme
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur
    [...]
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(27) : error C2047: instruction default non conforme
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(28) : error C2065: 'NULL' : identificateur non déclaré
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(42) : error C2065: 'M_PI_2' : identificateur non déclaré
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(43) : error C2143: erreur de syntaxe : absence de ';' avant '}'
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(45) : error C2572: 'Cylin::GetCoord' : redéfinition du paramètre par défaut : paramètre 1
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.h(51) : voir la déclaration de 'Cylin::GetCoord'
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(47) : error C2061: erreur de syntaxe : identificateur 'num'
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(47) : error C2143: erreur de syntaxe : absence de ';' avant '{'
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(48) : error C2046: instruction case non conforme
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur
    [...]

    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(57) : error C2047: instruction default non conforme
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(73) : error C2143: erreur de syntaxe : absence de ';' avant '}'
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(75) : error C2572: 'Spher::GetCoord' : redéfinition du paramètre par défaut : paramètre 1
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.h(75) : voir la déclaration de 'Spher::GetCoord'
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(77) : error C2061: erreur de syntaxe : identificateur 'num'
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(77) : error C2143: erreur de syntaxe : absence de ';' avant '{'
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(78) : error C2046: instruction case non conforme
    d:\dossiers & prog\programation\c\c++\init\moteur physique\moteur physique\points.cpp(80) : error C2043: instruction break non conforme
    [...]

    physique\points.cpp(87) : error C2047: instruction default non conforme
    Génération de code en cours...
    Le journal de génération a été enregistré à l'emplacement "file://d:\Dossiers & prog\programation\C\C++\init\Moteur physique\Moteur physique\Debug\BuildLog.htm"
    Moteur physique - 38 erreur(s), 0 avertissement(s)
    ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
    (j'ai coupé avec des "[..]" lorsque c'étais répétitif)

    le code de convert.ccp est:
    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
    #include<iostream>
    #include<string>
    #include"points.h"
    using namespace std;
    int main(int argc,char *argv[])
    {
    	int choix=NULL;
    	cout<<"A partir quel systeme ? \n1:carthesien \n2:cylindrique \n3:spherique"<<endl;
    	cin>>choix;
    	string coords[3];
    	coords[0]="X Y Z";
    	coords[1]="r Theta Z";
    	coords[2]="r Theta Phi";
    	double inco[3];
    	cout<<endl<<"Entrez les coordonnées "<<coords[choix-1]<<endl;
    	for(int i=0;i<3;i++)
    	cin>>inco[i];
    	switch(choix)
    	{
    		case 1:
    			{Carth point1(inco[0],inco[1],inco[2]);}
    			break;
    		case 2:
    			{Cylin point1(inco[0],inco[1],inco[2]);}
    			break;
    		case 3:
    			{Spher point1(inco[0],inco[1],inco[2]);}
    			break;
    	}
    	cout<<endl<<"Transformer en quel systeme ? \n1:carthesien \n2:cylindrique \n3:spherique"<<endl;
    	cin>>choix;
     
    	switch(choix)
    	{
    		case 1:
    			{Carth point2(inco[0],inco[1],inco[2]);}
    			break;
    		case 2:
    			{Cylin point2(inco[0],inco[1],inco[2]);}
    			break;
    		case 3:
    			{Spher point2(inco[0],inco[1],inco[2]);}
    			break;
    	}
    	point2(point1);
    	cout<<endl<<coords[choix-1]<<endl;
    	for(int i=1;i<4;i++)
    	{
    		cout<<point2.GetCoord(i)<<" ";
    	}
    	system("PAUSE");
    	return EXIT_SUCCESS;
    }
    en dehors le cela, il pointe aussi ce switch (points.ccp):
    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
    double Spher::GetCoord(int num=1)
    {
    	switch num
    	{
    		case 1:
    			return r;
    			break;
    		case 2:
    			return Theta;
    			break;
    		case 3:
    			return Phi;
    			break;
    		default:
    			return NULL;
    	}
    }
    (avec quelques variations)

    si vous pouviez m'aider...

    je met les fichier en piece jointe au cas ou.

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Tu déclares tes variables à l'intérieur de blocs d'accolades, elles ne sont pas définies en dehors.

    Si tu voulais manipuler une variable sans connaître son type c'est râpé, il faudra mettre en place un système plus compliqué (et je ne suis pas sûr que le polymorphisme soit une solution ici).

  3. #3
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    le seul nom fait peur.

    Sinon, il n'est pas possible de faire une "surcharge" de variable ? (en mettant plusieurs types pour la variable...)

    enfin, c'est pour la propreté du code. sinon, je peut bien déclarer trois variables.
    merci

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par méphistopheles
    Sinon, il n'est pas possible de faire une "surcharge" de variable ? (en mettant plusieurs types pour la variable...)
    Les seules variables qui peuvent contenir des valeurs de plusieurs types sont les pointeurs et les références avec les classes dérivées du type de base.

  5. #5
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Et les unions aussi ... (à moins que ça fasse pas partit du C++)

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par MatRem
    Et les unions aussi ... (à moins que ça fasse pas partit du C++)
    Si. Mais c'est restreint (on ne peut y mettre que des POD).

  7. #7
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Les seules variables qui peuvent contenir des valeurs de plusieurs types sont les pointeurs et les références avec les classes dérivées du type de base.
    et on ne peut pas faire de pointeur su plusieurs variables des fois ?

  8. #8
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Si en utilisant des tableaux de pointeurs.

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

Discussions similaires

  1. probleme de switch
    Par maysa dans le forum Langage
    Réponses: 4
    Dernier message: 20/10/2006, 16h00
  2. Probleme instruction switch
    Par mpascolo dans le forum Langage
    Réponses: 7
    Dernier message: 17/10/2006, 11h14
  3. Problème de switch !!!!!!
    Par King_T dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2006, 18h18
  4. [Language]Probleme de switch case
    Par nana1 dans le forum Langage
    Réponses: 20
    Dernier message: 17/11/2005, 00h49
  5. [débutant] Probleme avec switch et héritage
    Par durk dans le forum Langage
    Réponses: 2
    Dernier message: 21/04/2005, 09h48

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