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 :

Construction objets et pointeurs


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 105
    Points : 41
    Points
    41
    Par défaut Construction objets et pointeurs
    Bojour à tous;
    je voudrais poser une question sur les performances:
    Est ce que c'est mieux pour créer un objet est de l'instancier par un "new "ou bien directement:
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Classe* MonObjet1=new Classe(type1, typ2, ..);
    Classe MonObjet2=Classe(type1,type2,...);
    quelle est l'une des deux façons qui,en point de vue performances(temps d'exécution, occupation mémoire), est meilleure?

    Merci pour tous.

  2. #2
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 265
    Points : 6 686
    Points
    6 686
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    un objet créé de façon statique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Classe MonObjet2=Classe(type1,type2,...)
    que l'on peut écrire aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Classe MonObjet2(type1,type2,...);
    est alloué dans la pile (stack). Alors qu'un objet créé de façon dynamique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Classe* MonObjet1=new Classe(type1, typ2, ..);
    est alloué dans le tas (heap).
    Comme leurs noms l'indiquent, la pile est mieux ordonnée que le tas, les performances sont donc meilleures.

    De toutes façons, généralement, il faut privilégier la création statique, car outre une question de performances (qui me paraît tout de même négligeable), il y a la simplicité du code, la diminution du travail de gestion de la mémoire (donc moins de risque d'erreurs), et parfois une simplification du code.

    Hope it helps.

  3. #3
    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
    A moins d'avoir une bonne raison de le faire, inutile d'utiliser l'allocation dynamique (new). Ce sera plus difficile à maintenir, et dans une (très) moindre mesure plus lent et un chouïa plus gros en mémoire.

    Par bonne raison j'entends :

    - Très gros objet ne pouvant pas être stocké sur la pile
    - Objet dont on veut gérer la durée de vie
    - Objet possédant une sémantique de référence

Discussions similaires

  1. Action fin construction objet non-visuel mxml
    Par ®om dans le forum Flex
    Réponses: 1
    Dernier message: 25/06/2009, 13h59
  2. Objet et Pointeur
    Par Just-Soft dans le forum Langage
    Réponses: 19
    Dernier message: 17/01/2009, 10h55
  3. Conteneurs -> mettre objets ou pointeurs?
    Par Nykoo dans le forum Qt
    Réponses: 9
    Dernier message: 16/03/2008, 19h55
  4. Manipulation d'objet / de pointeurs
    Par gnulix dans le forum C++
    Réponses: 4
    Dernier message: 15/04/2007, 13h59
  5. conserver ma liste d'objets sans Pointeur Null ...
    Par comme de bien entendu dans le forum Général Java
    Réponses: 8
    Dernier message: 24/03/2006, 11h55

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