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 :

Initialistaion d'un array dans un constructeur?


Sujet :

C++

  1. #1
    Membre éprouvé

    Homme Profil pro
    Consultant ERP
    Inscrit en
    Janvier 2013
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 372
    Points : 1 202
    Points
    1 202
    Par défaut Initialistaion d'un array dans un constructeur?
    Bonjour,

    J'ai une struct renfermant les coordonnées cartésiennes d'un vecteur.
    J'en stocke plusieurs dans un array, déclaré dans mon header, que je voudrais initialiser dans le constructeur de ma classe.
    Cette classe est instanciée une seule fois, c'est une des classes mères de mon application.

    J'initialise avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ctor
    {
    struct Vector2D WaypointList[4] =  {Vector2D(x1,y1), Vector2D(x2,y2) ...}
    }
    Seulement les données de l'array, ainsi initialisé, ne sont pas récupérables depuis les méthodes de cette classe.
    Je contourne actuellement en initialisant dans la méthode qui m'intéresse, mais celle-ci est gourmande en CPU : est-il possible de déclarer une fois pour toute dans le constructeur?

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    Dans ton bout de code tu ne fais que crée une variable local au constructeur. D’ailleurs, un compilateur bien configuré aurait indiqué que la variable n'est pas utilisée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ctor(...)
    : WaypointList{{x1,y1}, {x2,y2} ...}
    //ou : WaypointList{Vector2D(x1,y1), Vector2D(x2,y2) ...}
    {}
    Avant c++11, il fallait initialiser indépendamment chaque indice du tableau.

    PS: mettre struct dans la déclaration d'une variable sert à rien.

  3. #3
    Membre éprouvé

    Homme Profil pro
    Consultant ERP
    Inscrit en
    Janvier 2013
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 372
    Points : 1 202
    Points
    1 202
    Par défaut
    Merci bien une nouvelle fois!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/11/2005, 19h02
  2. Réponses: 1
    Dernier message: 06/11/2005, 18h55
  3. [JS] array dans un appel de fonction
    Par dib258 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/10/2005, 14h36
  4. [debutant] rappel de la classe dans le constructeur
    Par newtito dans le forum Débuter
    Réponses: 6
    Dernier message: 05/10/2005, 01h15
  5. Capture d'exception dans un constructeur
    Par declencher dans le forum Composants VCL
    Réponses: 8
    Dernier message: 03/02/2004, 13h52

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