Diferència entre constructor i destructor

Taula de continguts:

Diferència entre constructor i destructor
Diferència entre constructor i destructor

Vídeo: Diferència entre constructor i destructor

Vídeo: Diferència entre constructor i destructor
Vídeo: Difference between Constructor and Destructor in C++ in hindi | Constructor Vs Destructor 2024, Juliol
Anonim

Diferència clau: constructor vs destructor

La majoria dels llenguatges de programació admeten la programació orientada a objectes (OOP). És el paradigma que ajuda a modelar un programari o un programa mitjançant objectes. La POO millora la productivitat i el manteniment. En POO tot es considera com un objecte. Els objectes es creen o s'instancia mitjançant classes. Constructor i Destructor són termes comuns a la Programació Orientada a Objectes. Aquest article parla de la diferència entre un constructor i un destructor. Un constructor i un destructor són funcions membres especials d'una classe. Un constructor i un destructor tenen el mateix nom que la classe, però el destructor té un signe de til (~). La diferència clau entre un constructor i un destructor és que un constructor s'utilitza per assignar memòria a un objecte mentre que un destructor s'utilitza per desassignar la memòria d'un objecte.

Què és un constructor?

Un constructor és una funció membre especial de la classe per assignar memòria a un objecte. Es pot utilitzar per proporcionar valors per als membres de dades. El constructor s'invoca quan es crea l'objecte. Té el mateix nom que el nom de la classe. Un constructor no retorna cap valor. Per tant, no conté cap tipus de retorn. Un constructor també pot acceptar paràmetres. Un constructor amb paràmetres es coneix com a constructor parametritzat.

Un exemple de constructor és el següent.

Rectangle de classe pública{

int llargada, amplada;

Rectangle públic (int p, int q){

longitud=p;

amplada=q;

}

public int calculateArea(){

retorn (llargadaamplada);

}

}

Segons el codi anterior, el constructor té el mateix nom que el nom de la classe. El constructor Rectangle accepta dos paràmetres. Són p i q. El valor enter p s'assigna a la longitud. El valor enter q s'assigna a l'amplada. A calcul alteArea, la multiplicació de la longitud i l'amplada es calcula per trobar l'àrea del rectangle. Al programa principal, el programador pot crear un objecte de tipus Rectangle i passar els arguments. per exemple. Rectangle rect1=Rectangle nou (2, 3). Aleshores, es crida al constructor parametritzat i assigna els valors a la longitud i l'amplada.

Diferència entre constructor i destructor
Diferència entre constructor i destructor

Figura 01: Constructor i Destructor

Quan hi ha un constructor sense cap paràmetre, s'anomena constructor per defecte. Si el programador no defineix un constructor, s'invocarà el constructor per defecte. Si hi ha una classe com a Student i quan el programador crea un objecte del tipus Student, es crida al constructor per defecte. per exemple. Estudiant s1=nou Estudiant(); Hi pot haver diversos constructors amb diferents paràmetres i diferents tipus de dades en una classe. El constructor adequat es pot cridar en conseqüència. Per tant, els constructors es poden sobrecarregar.

Què és un destructor?

Un destructor és una funció de membre especial de la classe. S'utilitza per desassignar memòria per a un objecte creat pel constructor. El destructor s'invoca quan l'objecte es destrueix. Realitza l'emmagatzematge de neteja que ja no és necessari. Igual que el constructor, el destructor té el mateix nom que la classe. També conté un símbol de tilda (~).

Un destructor no retorna cap valor. A diferència d'un constructor, el destructor no accepta cap paràmetre. Per tant, el destructor no admet la sobrecàrrega. Declarar un destructor es considera una bona pràctica de programació perquè allibera l'espai de memòria i aquest espai es pot utilitzar per emmagatzemar alguns altres objectes. La sintaxi de destructor és similar a ~className() { }. per exemple. ~Rectangle() {}; Només hi pot haver un únic destructor en una classe.

Quines similituds hi ha entre el constructor i el destructor?

  • Tant el constructor com el destructor estan associats amb objectes.
  • Tant el constructor com el destructor no retornen cap valor.
  • Tant el constructor com el destructor es criden automàticament.

Quina diferència hi ha entre el constructor i el destructor?

Constructor vs Destructor

Un constructor és un membre especial de la classe que s'utilitza per assignar memòria a un objecte. Un destructor és un membre especial de la classe que s'utilitza per desassignar la memòria d'un objecte.
Mètode d'invocació
S'invoca un constructor quan es crea l'objecte. S'anomena un destructor quan l'objecte és destruït o suprimit.
Ús
S'utilitza un constructor per assignar memòria per als objectes. S'utilitza un destructor per desassignar memòria per als objectes.
Paràmetres
Un constructor accepta paràmetres. Un destructor no accepta paràmetres.
Nombre de constructors i destructors
Pot haver-hi diversos constructors amb un nombre diferent de paràmetres i diferents tipus de paràmetres. Pot haver-hi un sol destructor a la classe.
Velocitat d'execució
Un constructor té el mateix nom que el nom de la classe. Un destructor té el mateix nom que el nom de la classe amb un símbol de tilde (~).
Sobrecàrrega
Un constructor es pot sobrecarregar. Un destructor no es pot sobrecarregar.

Resum – Constructor vs Destructor

OOP és un paradigma comú en el desenvolupament de programari. Pot simplificar un projecte complex. En POO s'utilitzen un constructor i un destructor. Un constructor i un destructor tenen el mateix nom que la classe, però el destructor té un signe ~. La diferència entre un constructor i un destructor és que un constructor s'utilitza per assignar memòria a un objecte mentre que un destructor s'utilitza per desassignar la memòria d'un objecte.

Descarregueu el PDF de Constructor vs Destructor

Podeu descarregar la versió PDF d'aquest article i utilitzar-la per a finalitats fora de línia segons la nota de citació. Baixeu la versió PDF aquí: Diferència entre constructor i destructor

Recomanat: