Introducción a Copy Constructor en C ++

Los lenguajes de programación nos proporcionan varias características que se pueden aprovechar para desarrollar la aplicación. En el caso de los idiomas de nivel medio, las características pueden ser menos en comparación con los idiomas de alto nivel, pero las opciones que ofrecen son amplias para desarrollar aplicaciones importantes. En esta sección, aprenderemos sobre los constructores de copia. El constructor puede definirse como la función especial que tiene el mismo nombre que el de la clase en la que se ha definido. El constructor se llama automáticamente cuando se inicializa el objeto de esa clase. Se podría decir que inicializando el objeto si la clase llama implícitamente al constructor. Si el constructor está sobrecargado, en ese caso los valores deben pasarse junto con el objeto al inicializarlo. Aquí el tipo de constructor que aprenderemos es muy único y se conoce como copy Constructor. Este constructor funciona utilizando otros objetos en lugar de valores normales.

¿Cómo funciona Copy Constructor en C ++?

Copiar constructor se puede definir como el tipo especial de constructor que se utiliza para declarar el objeto e inicializarlo utilizando otros objetos. Se llama al constructor normal cuando se inicializa el objeto de esa clase. Si el constructor está sobrecargado con varios parámetros que inicializar el objeto y pasar el mismo número de argumentos, se llamará parámetro de sobrecarga. Como el constructor de copia es el sobrecargado, podría llamarse cuando el objeto se inicializa utilizando el argumento y el argumento debe pasar el valor del objeto en lugar de cualquier valor normal.

Una vez que el valor recibido por el parámetro del constructor sobrecargado encuentra un objeto, se llamará al constructor de la copia y comenzará a ejecutarse el conjunto de sentencias definidas dentro del constructor de la copia. Antes de usar el constructor de copia tenemos que crear un objeto de la misma clase. Establece claramente el enfoque de que cualquier programa destinado a implementar el constructor de copia también debe tener un constructor predeterminado o parametrizado para que se pueda crear el objeto que ayudará a involucrar al constructor de copia.

Se puede considerar que el escenario general aprovecha un objeto para crear otro objeto. Todos los valores unidos con el objeto que se utiliza para inicializar el objeto mediante el constructor de copia se asignan al objeto recién inicializado. Esto significa que si el primer objeto usa el valor de cualquier variable, el objeto que inicializa el constructor de la copia puede usar la misma variable. La característica del constructor de copias se considera muy importante y hace que el desarrollo sea muy conveniente para algunas aplicaciones. Sus características para usar la referencia de objeto de la misma clase ayudan a desarrollar la aplicación que tiene el requisito que puede cumplirse usando solo el constructor de copia. Aunque no se utiliza con tanta frecuencia como el constructor predeterminado o parametrizado, tiene un amplio poder para contribuir a agregar nuevas funcionalidades a la aplicación.

Ejemplo

Comprendamos el concepto de constructor de copias usando el ejemplo. Aquí trabajaremos en un ejemplo simple que le mostrará cómo funciona el constructor de copias y cómo puede acceder a los valores que estaban vinculados al objeto mediante el cual el constructor de copias crea el nuevo objeto. La siguiente ilustración le dará una idea de cómo es diferente llamar al constructor de copias en comparación con llamar al constructor sobrecargado normal.

Programa

#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )
#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )

En este programa, hemos llamado al constructor parametrizado sin pasar por el argumento a través de a1. El valor pasado es un entero ya que el constructor parametrizado se ha definido para aceptar solo un entero. Cuando el valor 50 se pasa al constructor, el valor se ha asignado a la variable denominada var. Luego, el objeto a1 se ha pasado al constructor de copias a través de a2. Una vez que el constructor de la copia recibe la referencia del objeto, vincula el valor asignado con el primer objeto con el objeto recién formado. Este es un ejemplo simple para explicar el concepto del constructor de copias. Podría usarse en varios otros programas para obtener diversas funcionalidades en la aplicación.

Salida:

60 60

Reglas y Regulaciones para Copy Constructor en C ++

Copiar constructor se considera un poco diferente del constructor predeterminado o parametrizado. Por un lado, donde el constructor normal funciona utilizando el valor del tipo de datos común, por otro lado, el constructor de copia funciona utilizando el objeto creado previamente de la misma clase. Lo que debe garantizarse al usar el constructor de copia es que los parámetros pasados ​​a través del constructor de copia deben usarse junto con un signo de y comercial (&), ya que es un carácter especial que se usa para contener la referencia del objeto. Si no se usa ampersand al implementar el constructor de copia, ya no será un constructor de copia, sino que se considerará automáticamente como un constructor parametrizado.

Cuando se trata de llamar al constructor de copia, debemos asegurarnos de que el valor pasado como argumento debe llevar la referencia del objeto en lugar de cualquier valor que pertenezca al tipo de datos común. Estas son las pocas cosas que deben tenerse muy en cuenta al implementar el constructor de copias en el lenguaje de programación C ++. Además, cada vez que usamos el constructor de copia, debemos asegurarnos de que lo estamos diferenciando correctamente del constructor parametrizado, ya que, de lo contrario, esto cambiará totalmente la funcionalidad del programa y generará una generación de salida incorrecta.

Conclusión

El constructor de copia se considera un tipo especial de constructor que funciona utilizando la referencia de objeto de la misma clase. Se utiliza para traer varias funcionalidades en la aplicación. Si se compara con el constructor predeterminado, el constructor de copias no se usa muy a menudo en los programas simples, pero cuando se trata de desarrollar aplicaciones complejas que deben implementarse en el entorno de producción, el constructor de copias se usa allí y también hace que el desarrollo de aplicaciones sea bastante conveniente .

Artículos recomendados

Esta es una guía para copiar constructores en C ++. Aquí discutimos la introducción y cómo funciona Copy Constructor en C ++ junto con las Reglas y Regulaciones para Copy Constructor en C ++. También puede consultar los siguientes artículos para obtener más información:

  1. Copiar constructor en Java
  2. Copiar constructor en C #
  3. Constructor en C ++
  4. Uso del constructor en C
  5. Tipos de constructor en C # con implementación de código