Copiar matriz de constructor en C ++

Copiar matriz de constructor en C ++
Los constructores de copias son constructores que se están utilizando para duplicar el objeto actual de una clase específica. Generalmente está en el formato Z (Z &), donde Z es el nombre de la clase. Todas las clases tienen un constructor de copia estándar especificado por el compilador. El constructor de copias es idéntico al constructor estándar, con la excepción de que el argumento sería otro elemento de matriz, y la matriz creada recientemente se ha ajustado a las dimensiones del tipo de datos del parámetro y se ha declarado al contenido de la matriz del parámetro. Al usar diferentes ejemplos, vamos a discutir el constructor de copias y sus categorías en este artículo.

Usando el constructor de copias

En C ++, el constructor de copias se usa para duplicar el contenido de un objeto al otro. Ahora, veamos un ejemplo para demostrar cómo usar el constructor de copias profundas.

En primer lugar, integramos el archivo de encabezado para las funcionalidades de entrada y salida. Después de esto, utilizamos el espacio de nombres estándar. Ahora, vamos a declarar una clase 'habitación'. Inicializamos la longitud y el ancho de la habitación y lo colocamos en privado. El tipo de datos de la longitud y el ancho es 'doble' aquí.

Ahora, declaramos la 'longitud' y 'ancho' de la variable utilizando el constructor parametrizado. Aquí, pasamos estos parámetros al constructor de 'sala' y esto es público. Además de esto, utilizamos un constructor de copias. Copiamos el contenido del argumento 'obj'. Se llama a la función calculatearea () para encontrar el área de la habitación multiplicando el valor de la longitud por el valor de la altura.

En el paso posterior, declaramos la función principal (). Aquí, construimos un objeto de la clase de 'sala' y también especificamos los valores de su longitud y ancho. Ahora, solo tiene que copiar los datos de 'Room1' a 'Room2'. Después de esto, utilizamos 'Cout' para mostrar las áreas de ambas habitaciones. Al final, el return0 se usa para terminar el programa.

Use el constructor de copias poco profundas

Cuando una clase no interactúa dinámicamente con la asignación de memoria, se está utilizando el constructor de copias poco profundas. Dos objetos en el constructor de copias poco profundas se referirían a una dirección de memoria similar. Las referencias a los elementos reales se replican en una copia superficial. El compilador especifica un constructor de copia estándar. Es una réplica de una cosa. A continuación, se está utilizando una instancia para ilustrar la noción de un constructor de copias poco profundas.

Al comienzo del programa, presentamos dos bibliotecas requeridas y . Junto con esto, también utilizamos un espacio de nombres estándar. Ahora, creamos una clase llamada 'computadora'. Construimos un puntero de la clase y establecimos su tipo de datos 'carácter'.

Declaramos públicamente la función de la clase 'computadora' y aquí pasamos el constructor definido como un parámetro para esta función. Creamos una asignación de memoria dinámica aquí y la establecimos igual a la variable del puntero. Permite al usuario crear una memoria para un atributo o incluso una matriz en el programa.

Además, aplicamos la función de concatenate () vacío. Para concatenar dos cadenas, utilizamos el método strcat (). Ahora, declaramos un constructor de copias de la clase 'computadora'. Para mostrar la salida, utilizamos la función Void Display () junto con la instrucción 'Cout'. Ahora es el momento de llamar a la función principal (). Utilizamos el constructor de copias dentro del cuerpo de la función principal (). Se denomina un constructor porque se está utilizando para generar un objeto.

Entonces, el constructor de copias como su nombre lo indica, genera un nuevo objeto que es una réplica idéntica de la copia original. Creamos dos objetos y especificamos los valores de estos objetos. Luego, aplicamos la función Display () individualmente en estos objetos para obtener el resultado.

En el siguiente paso, A1 es tentador para concatenar, por lo tanto, aplicamos el 'A1.Función concatenate () '. Aquí, también establecemos un valor 'tecnología' para la concatenación. Nuevamente utilizamos el método Display () para obtener la salida. Ahora, terminamos el programa usando 'return 0'.

Use el constructor de copia profunda

La copia profunda requiere un espacio de memoria único para datos duplicados. Como resultado, el original y la copia son distintos. Las modificaciones implementadas en una región de memoria no tienen impacto en la réplica. Utilizaríamos un constructor de copias definido por el usuario al construir la memoria dinámica con punteros. Ambas entidades se referirían a ubicaciones separadas en la memoria.

Además, utilizamos el espacio de nombres estándar. Ahora haremos una clase llamada 'ProgrammingLanguage.'Creamos un puntero de clase y definimos su tipo de datos al carácter'.'Entonces, definimos la función de la clase' ProgrammingLanguage 'como pública, y le proporcionamos el constructor especificado como argumento.

Aquí, construimos una asignación de memoria dinámica y la asignamos equivalente a la variable del puntero. Nos permite adquirir almacenamiento para un conjunto de datos o una matriz en el programa. La función se llama aquí, y el constructor de la clase de lenguaje de programación se da como parámetro. Hemos estado utilizando el método nulo concatenate ().

Además, utilizaremos la técnica strcat () para concatenar dos cuerdas juntas. Ahora, creamos un constructor de copias de la clase 'ProgrammingLanguage'. Los datos se muestran utilizando el método Void Display () y el comando 'Cout'. La función principal () ahora se llamará. En el cuerpo de la función principal (), hemos utilizado el constructor de copias. Esto duplica un objeto predefinido. Por lo tanto, normalmente no querríamos modificar el objeto real. Hacemos dos objetos y asignamos el objeto 'A1' el valor 'Python.'El objeto' a2 'es igual al objeto' a1 'en la siguiente fase.

Para obtener la salida, hemos estado utilizando el método Display () en cada uno de estos objetos individualmente. Ahora, utilizamos el comando 'return 0' para salir del programa.

Conclusión

En este artículo, hemos aclarado el funcionamiento de un constructor de copias en el lenguaje C ++. Cada vez que se hace un objeto, un constructor es una forma específica de una clase derivada que se declara instantáneamente. Los constructores de copias son aquellos constructores que se utilizarán para replicar un elemento de una clase especificada que ya existe. También observamos cómo usar el constructor de copias superficiales y el constructor de copias profundas con la ayuda de diferentes instancias.