¿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