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 :

operateur delete


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut operateur delete
    Bonjour, j'ai un pointeur vers un objet A dans ma code :
    Je fais des fois :
    et des fois :
    Tout ceci est fait à l'intérieur d'une autre classe (B par exemple) où un pointeur de A est déclaré.
    Si j'alloue un seul A, est-ce que je peux utiliser l'opérateur :
    Ou alors est-ce que je dois en fonction de ptA (s'il possède un élément ou plusieurs) faire un
    si un seul objet
    Si plusieurs objets.


    peut-il être utilisé dans tous les cas ?

  2. #2
    Membre chevronné
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Par défaut
    Salut !

    Il faut distinguer deux cas possibles (soit un new soit un new[])

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    A* ptA; 
    ptA = new A; 
    ...
    delete ptA;
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    A* ptA; 
    ptA = new A[cpt]; 
    ...
    delete []ptA;

    Donc new appelle delete, new[] appelle delete[]...

    A+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    OK merci donc pas de possibilité de jongler avec les 2 !

  4. #4
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    et si tu faisait (dans le cas où tu ne veux qu'un objet):tu pourrais alors utiliser delete[] dans les 2 cas.

  5. #5
    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

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    merci pour vos propositions.

  7. #7
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Salut,

    pourquoi tu n'utilises pas tout le temps new[] et delete[] dans le cas ou tu n'as besoin que d'un seul objet utilise cpt = 1 ?

    XXiemeciel

  8. #8
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Citation Envoyé par ep31
    OK merci donc pas de possibilité de jongler avec les 2 !
    C++ est un langage typé. Là, soit tu manipules un tableau, soit tu manipules un objet. Tu doit être capable de faire la différence à tout moment pour chaque donnée de ton code. Forcer le vecteur donne à la limite plus de rigueur.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

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

Discussions similaires

  1. Supprimer l'operateur delete[]
    Par yamashi dans le forum Langage
    Réponses: 2
    Dernier message: 03/10/2011, 15h05
  2. operateur delete et exception
    Par ram-0000 dans le forum C++
    Réponses: 9
    Dernier message: 30/04/2008, 21h06
  3. surdefinition operateur new et delete
    Par johjoh dans le forum C++
    Réponses: 23
    Dernier message: 08/12/2006, 10h10
  4. surcharge operateur delete et héritage
    Par Hervé dans le forum C++
    Réponses: 5
    Dernier message: 29/03/2006, 13h59
  5. [MFC] ADO et operateur delete
    Par 0xYg3n3 dans le forum MFC
    Réponses: 9
    Dernier message: 26/03/2005, 14h38

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