Discusión:Constructor (informática)

Contenido de la página no disponible en otros idiomas.
De Wikipedia, la enciclopedia libre

El constructor de copia es un tipo de constructor muy usado en C++ que sirve para para crear copias de clases usando una copia como base para la inicialización de la nueva clase. Esto supone un ahorro en la cantidad de código necesario para ejecutar su creación. Esto se debe a que los tipos de datos en c/c++ son tipos de datos no inizializados en su creación, si definimos una variable como long y no la inicializamos, es imposible saber cual será su valor ya que se corresponderá con la información que hubiese en ese espacio de memoria antes de ser marcado como disponible (por ejemplo 4 bytes de un video o cualquier otra cosa), por eso es importante que las clase dispongan de una buena inizialización en su constructor o sistema equivalente, ya que esto nos ahorrará quebraderos de cabeza cuando se nos presente un problema y debamos debuguear el programa en cuestión. Disponer de constructores de copia nos permitirá mantener clases bien inicializadas en su creación si que ello suponga una penalización a la hora de realizar copias, especialmente útil cuando se trabaja con miles de elementos en arrays, vectores, mapas, etc.

Un poco de código:

       class ClaseConCC
       {
       public:
           ClaseConCC()  //Constructor básico
           {
               Inicializar();
           }
           ClaseConCC(const ClaseConCC& cOriginal) //Constructor de copia (llama al operador de copia para la inicialización)
           {
               *this = cOriginal;
           }
           ClaseConCC& operator = (const ClaseConCC& cOriginal) //Operador de copia
           {
               nEntero = cOriginal.nEntero;
               dDouble = cOriginal.dDouble;
               return *this;
           }
           void Inicializar()  //Función de inicialización de los miembros de la clase
           {
               nEntero = 0;
               dDouble = 0.0;
           }
           long   nEntero;  //Variable miembro de la clase
           double dDouble;  //Variable miembro de la clase
       };

--Pharago (discusión) 05:28 21 oct 2008 (UTC)[responder]

Habría que distinguir entre los constructores de un lenguaje de programación y los constructores de objetos. Estos últimos son los únicos que se han tratado en el artículo. --77.208.11.234 (discusión) 17:40 28 ago 2009 (UTC)[responder]