C++ - créer un objet statique ou dynamique?
Résolu
nikoladu49
Messages postés
228
Date d'inscription
Statut
Membre
Dernière intervention
-
ouma -
ouma -
Bonjour,
je voudrais savoir quand créer, en c++, un objet statiquement, et quand créer plutôt un objet dynamiquement.
Pouvez vous m'expliquer?
Merci d'avance.
je voudrais savoir quand créer, en c++, un objet statiquement, et quand créer plutôt un objet dynamiquement.
Pouvez vous m'expliquer?
Merci d'avance.
A voir également:
- C++ - créer un objet statique ou dynamique?
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un lien pour partager des photos - Guide
- Créer un compte gmail - Guide
- Créer un compte instagram sur google - Guide
7 réponses
ok.
En général tu fais une allocation statique quand tu n'as pas besoin de l'objet après la sortie de ta méthode car l'objet est détruit a la sortie.
tu fais un new si tu veux gérer toi même la destruction de l'objet (avec delete)
dans une autre méthode.
clair ?
-
Grou29
http://lienssanslien.free.fr
En général tu fais une allocation statique quand tu n'as pas besoin de l'objet après la sortie de ta méthode car l'objet est détruit a la sortie.
tu fais un new si tu veux gérer toi même la destruction de l'objet (avec delete)
dans une autre méthode.
clair ?
-
Grou29
http://lienssanslien.free.fr
ouma
merci
il y a aussi le fait que des fois, on ne sait pas de combien d'objets on a besoin.
Alors tu as deux possiblités :
soit tu crées assez d'objets "statiquement" dans ton programme pour être sûr d'avoir une certaine flexibilité,
soit tu crées tes objets "dynamiquement" à la demande.
Imagine un carnet d'adresses.
Peut être qu'un utilisateur du programme aura une dizaine d'adresse dans son carnet, peut-être qu'un autre en aura 1000.
Si tu fais statiquement, le programme consommera la même mémoire dans le cas des 10 que dans le cas des 1000, car tu auras dû prévoir la place pour mille variables.
Alors que dynamiquement le fait d'avoir seulement dix noms utilisera beaucoup moins de mémoire.
Alors tu as deux possiblités :
soit tu crées assez d'objets "statiquement" dans ton programme pour être sûr d'avoir une certaine flexibilité,
soit tu crées tes objets "dynamiquement" à la demande.
Imagine un carnet d'adresses.
Peut être qu'un utilisateur du programme aura une dizaine d'adresse dans son carnet, peut-être qu'un autre en aura 1000.
Si tu fais statiquement, le programme consommera la même mémoire dans le cas des 10 que dans le cas des 1000, car tu auras dû prévoir la place pour mille variables.
Alors que dynamiquement le fait d'avoir seulement dix noms utilisera beaucoup moins de mémoire.
Je me permet de faire faire un petit up. Je sais que le sujet date un peu mais j'attend toujours un réponses.
Merci d'avance.
Merci d'avance.
Peux être peux tu préciser ce que tu entends par "statiquement" (objet global, objet statique a un fichier, statique a une classe (agrégation) ...)
-
Grou29
http://lienssanslien.free.fr
-
Grou29
http://lienssanslien.free.fr
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Et bien quand je dit statique, c'est par exemple:
et quand je dit dynamiquement, je veux dire:
Ma question est donc: quand utiliser une des deux méthodes ci-dessous, et quand utiliser l'autre pour l'initialisation de mes objets?
J'espère que tu comprend mieux.
classe objet(parametres);
et quand je dit dynamiquement, je veux dire:
classe *objet = new classe(parametres);
Ma question est donc: quand utiliser une des deux méthodes ci-dessous, et quand utiliser l'autre pour l'initialisation de mes objets?
J'espère que tu comprend mieux.
Si on crée un objet statiquement ou dynamiquement, on en crée un seul pourtant. Par exemple si on prend les widgets de Qt, on les crée dynamiquement alors que l'on sais combien de widget on va créer.