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 :

[Débutant] Déclaration dynamique de variable portant le même nom


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut [Débutant] Déclaration dynamique de variable portant le même nom
    Bonjour !

    Je voudrais savoir si il est possible de faire une déclaration du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int a;
    if(a)
    string machin;
    else
    CString machin;
    Mais il faudrait que les objets créés soient visible dans le même bloc d'instruction...
    Plus précisément j'aimerai déclarer un type de variable portant le même nom (machin dans mon exemple car présent dans toute une partie du code)
    Ceci me permettrait d'adapter aisement un code pour MySQL en SQL Server en fonction de la valeur d'un champ lu dans un fichier de configuration.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Non, tu ne peux.

    Tu ne peux faire ça que statiquement, avec le préprocesseur (#if, #ifdef, #else, #endif). Mais un code buildé pour un moteur devra être rebuildé pour l'autre.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut
    Ah c'est dommage . ET niveau template tu crois qu'il y'a quelque chose creuser ? Car je ne sais pas trop j'ai jamais vraiment créé de classe template...
    Concernant le préprocesseur, c'est ce que j'utilise en ce moment mais bon c'est vrai que ça reste statique comme genre de définition ...

  4. #4
    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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Ca dépend de ce que tu comptes faire exactement. Tu peux créer une fonction template dont le paramètre est le type (string ou CString), par exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    template <typename T> void F()
    {
        T machin;
        ...
    }
     
    int a;
    if (a)
        F<std::string>();
    else
        F<CString>();

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut
    Ok merci bien ! je vais tenter de creuser ça

  6. #6
    Membre actif Avatar de straasha
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2004
    Messages : 149
    Points : 295
    Points
    295
    Par défaut
    est ce que tu as regarde du cote des union ?
    http://www.allprog.com/CPlusPlus/Union.htm
    je sais pas si c'est tres propre en C++...

  7. #7
    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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par straasha
    est ce que tu as regarde du cote des union ?
    http://www.allprog.com/CPlusPlus/Union.htm
    je sais pas si c'est tres propre en C++...
    C'est pas propre, ça ne répond pas au problème, et en plus on ne peut pas y mettre des types du genre std::string ou CString

  8. #8
    Membre actif Avatar de straasha
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2004
    Messages : 149
    Points : 295
    Points
    295
    Par défaut
    m'en doutait un peu

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut
    Bon anniversaire Laurent

  10. #10
    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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut


    C'est gentil merci

  11. #11
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    T'as des techniques pour pouvoir recréer la même chose qu'union mais avec n'importe quel type.
    C'est ce que fait boost::variant.

Discussions similaires

  1. Déclaration dynamique de variables objets
    Par Anduriel dans le forum Langage
    Réponses: 7
    Dernier message: 04/08/2013, 15h28
  2. Déclaration dynamique de variable
    Par winchester dans le forum SAP
    Réponses: 3
    Dernier message: 06/08/2012, 14h26
  3. Déclaration dynamique de variable
    Par shinigami dans le forum C
    Réponses: 28
    Dernier message: 12/02/2009, 13h01
  4. [Débutant] Déclaration d'une variable ArrayList
    Par nanath02 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 08/03/2007, 10h30
  5. input portant le même nom
    Par cronos6 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/05/2006, 12h29

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