Quina diferència hi ha entre constructor i destructor?


Resposta 1:

Un constructor és un mètode que s'executa quan s'està assignant memòria per a una instància d'un objecte. Un destructor és un mètode que s'executa quan es designa la mateixa memòria.

Alguns idiomes no permeten destructors personalitzats (com c #) mentre que d’altres (c ++). C # però permet mètodes de finalització que s’executen quan s’elimina la instància de la cua de finalització. Els finalitzadors són útils per alliberar recursos no gestionats dins del codi gestionat.


Resposta 2:

Crec que l’aspecte funcional del constructor / destructor és més important que l’aspecte sintàctic. Intentaré explicar des del punt de vista Java / Cpp. Així que aquí va:

El constructor s'utilitza per assignar memòria per a l'objecte associat. Una classe, per si mateixa, té poc sentit que no sigui un model d'objectes. El que fem servir al nostre programa són objectes. El mètode constructor de la classe és el mètode que s'utilitza per fer aquest treball. Tanmateix, la forma exacta d’aconseguir-ho depèn del llenguatge de programació. El destructor, en canvi, té l'efecte invers del constructor i designa la memòria assignada. Tingueu en compte que seguint aquesta lògica, les classes estàtiques no requereixen constructor / destructor.

Des del punt de vista sintàctic, la sintaxi varia d’un llenguatge a un altre. En cpp, la sintaxi general és

nom d'objecte classtype (argument);

o

classstype * objectname = nou classstype (argument);

per apunts. Per Java, ho és

object name classstype = nou classstype (argument);

Tingueu en compte també que si no implementeu un constructor explícit per a la vostra classe, el compilador truca automàticament a un constructor predeterminat. El mateix amb el destructor (a cpp, a Java no es pot especificar un destructor explícit). Tingueu en compte que també en cpp, el destructor per defecte designa la memòria per a l'objecte, però no per a qualsevol assignació dinàmica de l'objecte (per exemple, malloc per a una matriu de mida 100 per l'objecte). Heu d'assegurar-vos que allibereu aquestes assignacions al destructor personalitzat (si aquesta variable és una variable de classe, si no que la designeu en l'àmbit local). La sintaxi cpp per al destructor personalitzat és

~ nom de classe () {...}

Ps: les correccions i els suggeriments sempre són benvinguts.


Resposta 3:

Crec que l’aspecte funcional del constructor / destructor és més important que l’aspecte sintàctic. Intentaré explicar des del punt de vista Java / Cpp. Així que aquí va:

El constructor s'utilitza per assignar memòria per a l'objecte associat. Una classe, per si mateixa, té poc sentit que no sigui un model d'objectes. El que fem servir al nostre programa són objectes. El mètode constructor de la classe és el mètode que s'utilitza per fer aquest treball. Tanmateix, la forma exacta d’aconseguir-ho depèn del llenguatge de programació. El destructor, en canvi, té l'efecte invers del constructor i designa la memòria assignada. Tingueu en compte que seguint aquesta lògica, les classes estàtiques no requereixen constructor / destructor.

Des del punt de vista sintàctic, la sintaxi varia d’un llenguatge a un altre. En cpp, la sintaxi general és

nom d'objecte classtype (argument);

o

classstype * objectname = nou classstype (argument);

per apunts. Per Java, ho és

object name classstype = nou classstype (argument);

Tingueu en compte també que si no implementeu un constructor explícit per a la vostra classe, el compilador truca automàticament a un constructor predeterminat. El mateix amb el destructor (a cpp, a Java no es pot especificar un destructor explícit). Tingueu en compte que també en cpp, el destructor per defecte designa la memòria per a l'objecte, però no per a qualsevol assignació dinàmica de l'objecte (per exemple, malloc per a una matriu de mida 100 per l'objecte). Heu d'assegurar-vos que allibereu aquestes assignacions al destructor personalitzat (si aquesta variable és una variable de classe, si no que la designeu en l'àmbit local). La sintaxi cpp per al destructor personalitzat és

~ nom de classe () {...}

Ps: les correccions i els suggeriments sempre són benvinguts.


Resposta 4:

Crec que l’aspecte funcional del constructor / destructor és més important que l’aspecte sintàctic. Intentaré explicar des del punt de vista Java / Cpp. Així que aquí va:

El constructor s'utilitza per assignar memòria per a l'objecte associat. Una classe, per si mateixa, té poc sentit que no sigui un model d'objectes. El que fem servir al nostre programa són objectes. El mètode constructor de la classe és el mètode que s'utilitza per fer aquest treball. Tanmateix, la forma exacta d’aconseguir-ho depèn del llenguatge de programació. El destructor, en canvi, té l'efecte invers del constructor i designa la memòria assignada. Tingueu en compte que seguint aquesta lògica, les classes estàtiques no requereixen constructor / destructor.

Des del punt de vista sintàctic, la sintaxi varia d’un llenguatge a un altre. En cpp, la sintaxi general és

nom d'objecte classtype (argument);

o

classstype * objectname = nou classstype (argument);

per apunts. Per Java, ho és

object name classstype = nou classstype (argument);

Tingueu en compte també que si no implementeu un constructor explícit per a la vostra classe, el compilador truca automàticament a un constructor predeterminat. El mateix amb el destructor (a cpp, a Java no es pot especificar un destructor explícit). Tingueu en compte que també en cpp, el destructor per defecte designa la memòria per a l'objecte, però no per a qualsevol assignació dinàmica de l'objecte (per exemple, malloc per a una matriu de mida 100 per l'objecte). Heu d'assegurar-vos que allibereu aquestes assignacions al destructor personalitzat (si aquesta variable és una variable de classe, si no que la designeu en l'àmbit local). La sintaxi cpp per al destructor personalitzat és

~ nom de classe () {...}

Ps: les correccions i els suggeriments sempre són benvinguts.


Resposta 5:

Crec que l’aspecte funcional del constructor / destructor és més important que l’aspecte sintàctic. Intentaré explicar des del punt de vista Java / Cpp. Així que aquí va:

El constructor s'utilitza per assignar memòria per a l'objecte associat. Una classe, per si mateixa, té poc sentit que no sigui un model d'objectes. El que fem servir al nostre programa són objectes. El mètode constructor de la classe és el mètode que s'utilitza per fer aquest treball. Tanmateix, la forma exacta d’aconseguir-ho depèn del llenguatge de programació. El destructor, en canvi, té l'efecte invers del constructor i designa la memòria assignada. Tingueu en compte que seguint aquesta lògica, les classes estàtiques no requereixen constructor / destructor.

Des del punt de vista sintàctic, la sintaxi varia d’un llenguatge a un altre. En cpp, la sintaxi general és

nom d'objecte classtype (argument);

o

classstype * objectname = nou classstype (argument);

per apunts. Per Java, ho és

object name classstype = nou classstype (argument);

Tingueu en compte també que si no implementeu un constructor explícit per a la vostra classe, el compilador truca automàticament a un constructor predeterminat. El mateix amb el destructor (a cpp, a Java no es pot especificar un destructor explícit). Tingueu en compte que també en cpp, el destructor per defecte designa la memòria per a l'objecte, però no per a qualsevol assignació dinàmica de l'objecte (per exemple, malloc per a una matriu de mida 100 per l'objecte). Heu d'assegurar-vos que allibereu aquestes assignacions al destructor personalitzat (si aquesta variable és una variable de classe, si no que la designeu en l'àmbit local). La sintaxi cpp per al destructor personalitzat és

~ nom de classe () {...}

Ps: les correccions i els suggeriments sempre són benvinguts.


Resposta 6:

Crec que l’aspecte funcional del constructor / destructor és més important que l’aspecte sintàctic. Intentaré explicar des del punt de vista Java / Cpp. Així que aquí va:

El constructor s'utilitza per assignar memòria per a l'objecte associat. Una classe, per si mateixa, té poc sentit que no sigui un model d'objectes. El que fem servir al nostre programa són objectes. El mètode constructor de la classe és el mètode que s'utilitza per fer aquest treball. Tanmateix, la forma exacta d’aconseguir-ho depèn del llenguatge de programació. El destructor, en canvi, té l'efecte invers del constructor i designa la memòria assignada. Tingueu en compte que seguint aquesta lògica, les classes estàtiques no requereixen constructor / destructor.

Des del punt de vista sintàctic, la sintaxi varia d’un llenguatge a un altre. En cpp, la sintaxi general és

nom d'objecte classtype (argument);

o

classstype * objectname = nou classstype (argument);

per apunts. Per Java, ho és

object name classstype = nou classstype (argument);

Tingueu en compte també que si no implementeu un constructor explícit per a la vostra classe, el compilador truca automàticament a un constructor predeterminat. El mateix amb el destructor (a cpp, a Java no es pot especificar un destructor explícit). Tingueu en compte que també en cpp, el destructor per defecte designa la memòria per a l'objecte, però no per a qualsevol assignació dinàmica de l'objecte (per exemple, malloc per a una matriu de mida 100 per l'objecte). Heu d'assegurar-vos que allibereu aquestes assignacions al destructor personalitzat (si aquesta variable és una variable de classe, si no que la designeu en l'àmbit local). La sintaxi cpp per al destructor personalitzat és

~ nom de classe () {...}

Ps: les correccions i els suggeriments sempre són benvinguts.


Resposta 7:

Crec que l’aspecte funcional del constructor / destructor és més important que l’aspecte sintàctic. Intentaré explicar des del punt de vista Java / Cpp. Així que aquí va:

El constructor s'utilitza per assignar memòria per a l'objecte associat. Una classe, per si mateixa, té poc sentit que no sigui un model d'objectes. El que fem servir al nostre programa són objectes. El mètode constructor de la classe és el mètode que s'utilitza per fer aquest treball. Tanmateix, la forma exacta d’aconseguir-ho depèn del llenguatge de programació. El destructor, en canvi, té l'efecte invers del constructor i designa la memòria assignada. Tingueu en compte que seguint aquesta lògica, les classes estàtiques no requereixen constructor / destructor.

Des del punt de vista sintàctic, la sintaxi varia d’un llenguatge a un altre. En cpp, la sintaxi general és

nom d'objecte classtype (argument);

o

classstype * objectname = nou classstype (argument);

per apunts. Per Java, ho és

object name classstype = nou classstype (argument);

Tingueu en compte també que si no implementeu un constructor explícit per a la vostra classe, el compilador truca automàticament a un constructor predeterminat. El mateix amb el destructor (a cpp, a Java no es pot especificar un destructor explícit). Tingueu en compte que també en cpp, el destructor per defecte designa la memòria per a l'objecte, però no per a qualsevol assignació dinàmica de l'objecte (per exemple, malloc per a una matriu de mida 100 per l'objecte). Heu d'assegurar-vos que allibereu aquestes assignacions al destructor personalitzat (si aquesta variable és una variable de classe, si no que la designeu en l'àmbit local). La sintaxi cpp per al destructor personalitzat és

~ nom de classe () {...}

Ps: les correccions i els suggeriments sempre són benvinguts.


Resposta 8:

Crec que l’aspecte funcional del constructor / destructor és més important que l’aspecte sintàctic. Intentaré explicar des del punt de vista Java / Cpp. Així que aquí va:

El constructor s'utilitza per assignar memòria per a l'objecte associat. Una classe, per si mateixa, té poc sentit que no sigui un model d'objectes. El que fem servir al nostre programa són objectes. El mètode constructor de la classe és el mètode que s'utilitza per fer aquest treball. Tanmateix, la forma exacta d’aconseguir-ho depèn del llenguatge de programació. El destructor, en canvi, té l'efecte invers del constructor i designa la memòria assignada. Tingueu en compte que seguint aquesta lògica, les classes estàtiques no requereixen constructor / destructor.

Des del punt de vista sintàctic, la sintaxi varia d’un llenguatge a un altre. En cpp, la sintaxi general és

nom d'objecte classtype (argument);

o

classstype * objectname = nou classstype (argument);

per apunts. Per Java, ho és

object name classstype = nou classstype (argument);

Tingueu en compte també que si no implementeu un constructor explícit per a la vostra classe, el compilador truca automàticament a un constructor predeterminat. El mateix amb el destructor (a cpp, a Java no es pot especificar un destructor explícit). Tingueu en compte que també en cpp, el destructor per defecte designa la memòria per a l'objecte, però no per a qualsevol assignació dinàmica de l'objecte (per exemple, malloc per a una matriu de mida 100 per l'objecte). Heu d'assegurar-vos que allibereu aquestes assignacions al destructor personalitzat (si aquesta variable és una variable de classe, si no que la designeu en l'àmbit local). La sintaxi cpp per al destructor personalitzat és

~ nom de classe () {...}

Ps: les correccions i els suggeriments sempre són benvinguts.