Taula de continguts:

Quin operador s'utilitza per assignar un objecte dinàmicament d'una classe en C++?
Quin operador s'utilitza per assignar un objecte dinàmicament d'una classe en C++?

Vídeo: Quin operador s'utilitza per assignar un objecte dinàmicament d'una classe en C++?

Vídeo: Quin operador s'utilitza per assignar un objecte dinàmicament d'una classe en C++?
Vídeo: CS50 2015 - Week 8 2024, De novembre
Anonim

Suporta C++ dinàmic assignació i desassignació de objectes utilitzant el nou i esborra operadors . Aquests els operadors assignen memòria per objectes d'una piscina anomenada botiga gratuïta. El nou operador anomena la funció especial operador nou i l'eliminació operador anomena la funció especial operador esborrar.

D'aquesta manera, com assigneu dinàmicament una matriu d'objectes en C++?

Notes de C++: assignació dinàmica de matrius

  1. Els problemes amb les matrius de mida fixa. Declaració d'una matriu amb una mida fixa com.
  2. Declara la matriu com a punter, assigna amb new. Per crear una variable que apuntarà a una matriu assignada dinàmicament, declareu-la com a punter al tipus d'element.
  3. Assigna una matriu amb codi>nou.
  4. Alliberament de memòria amb suprimir.
  5. Exemples.

A més, com assigneu i desassigneu la memòria dinàmicament en C++? C utilitza la funció malloc() i calloc() per assignar memòria dinàmicament en temps d'execució i utilitza la funció free() per alliberar dinàmicament assignat memòria . C++ admet aquestes funcions i també té dos operadors new i delete que realitzen la tasca de assignant i alliberant el memòria d'una manera millor i més fàcil.

De la mateixa manera, es pot preguntar, com es fa una classe C++ els objectes de la qual només es poden assignar dinàmicament?

  1. No es pot fer. L'únic que podeu fer és fer privat el constructor i tenir una fàbrica estàtica que construeixi una nova instància de la classe. –
  2. Crear una classe així és sens dubte un problema.
  3. És un requisit molt estrany.

Com restringeixo l'assignació dinàmica d'un objecte en C++?

Basat en pila objectes estan gestionats implícitament per C++ compilador. Es destrueixen quan surten de l'abast i objectes assignats dinàmicament s'ha d'alliberar manualment, utilitzant l'operador suprimir en cas contrari memòria es produeix una fuita. C++ no admet l'enfocament automàtic de recollida d'escombraries utilitzat per llenguatges com Java i C#.