Red de conocimientos turísticos - Conocimientos sobre calendario chino - ¿Qué es un constructor de copias? ¿Cuándo se llama al constructor de copias?

¿Qué es un constructor de copias? ¿Cuándo se llama al constructor de copias?

El constructor de copia también se denomina constructor repetido y el compilador lo llama para construir e inicializar otros objetos del mismo tipo. Se llama automáticamente cuando un objeto se pasa al cuerpo de la función como un valor; cuando un objeto se devuelve desde la función como un valor y cuando un objeto se utiliza para inicializar otro objeto (a menudo llamado inicialización de asignación);

El constructor de la copia debe pasarse por referencia (valor de referencia como parámetro). Cuando un objeto se pasa como valor a una función, se llama automáticamente al constructor de copia para generar el objeto en la función.

Si un objeto se pasa a su propio constructor de copia, entonces se llamará a su constructor de copia para copiar el objeto, de modo que la copia se pase a su propio constructor de copia, lo que provocará un bucle infinito hasta que la pila se desborda. Además de llamarse implícitamente cuando un objeto se pasa a una función, también se llama al constructor de copia cuando se devuelve un objeto desde una función.

Extensiones:

Principios de uso:

El principio general es que cualquier clase que contenga miembros asignados dinámicamente o miembros punteros debe proporcionar un constructor de copia y, al proporcionar While Al copiar el constructor, también debería considerar sobrecargar el símbolo de asignación "=".

El formato del constructor de copia es:

Nombre de clase (nombre de clase constante y nombre de objeto, el prototipo del constructor de copia, y el parámetro es una referencia al objeto constante); . Dado que el propósito del constructor de copia es copiar el miembro y no debe modificar el objeto original, se recomienda utilizar la palabra clave const.

Constructor de copia de la enciclopedia Baidu