Maison > développement back-end > C++ > Instanciation nouvelle ou non nouvelle en C : quelles sont les principales différences ?

Instanciation nouvelle ou non nouvelle en C : quelles sont les principales différences ?

Linda Hamilton
Libérer: 2024-11-24 06:35:11
original
967 Les gens l'ont consulté

New vs. Non-new Instantiation in C  : What are the Key Differences?

Différences d'instanciation : nouveau et non nouveau

Cette question explore les différences fonctionnelles entre l'instanciation d'un objet à l'aide de l'opérateur new et son instanciation sans neuf.

Non neuf Instanciation

Time t(12, 0, 0); // t is a Time object
Copier après la connexion

Cette instanciation crée un objet Time nommé t qui réside sur la pile (dans la plupart des implémentations). Il conserve son existence dans la portée actuelle.

nouvelle instanciation

Time *t = new Time(12, 0, 0); // t is a pointer to a dynamically allocated Time object
Copier après la connexion

Cette instanciation alloue de la mémoire dynamiquement à l'aide de l'opérateur new(), puis appelle le constructeur Time( ). L'adresse du bloc mémoire alloué est stockée dans t. L'objet Time réside sur le tas (généralement). Plus tard dans le programme, t doit être supprimé pour libérer la mémoire allouée et éviter les fuites de mémoire.

Différences fonctionnelles

Outre la différence évidente dans la gestion de la mémoire, il n'y a pas différences fonctionnelles substantielles entre les deux instanciations. Les deux méthodes créent des instances de la classe Time avec les paramètres spécifiés.

N.B.

Les termes « pile » et « tas » sont généralement utilisés pour indiquer les emplacements de stockage de objets alloués par pile et par tas, respectivement. Cependant, le standard C n’impose pas ces distinctions en fonction des emplacements mémoire. Au lieu de cela, il catégorise les objets en fonction de leur durée de stockage, qui peut ou non correspondre aux concepts conventionnels de pile et de tas.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal