Funciones miembro especiales (C++)
C++ define varias clases de funciones que se pueden declarar únicamente como miembros de clase, lo que se conoce como “funciones miembro especiales”. Estas funciones afectan al modo en que los objetos de una clase determinada se crean, destruyen, copian y convierten en objetos de otros tipos. Otra propiedad importante de muchas de estas funciones es que se pueden llamar de forma implícita (desde el compilador).
Las funciones miembro especiales descritas en esta sección son las siguientes:
Constructores. Permiten la inicialización automática de los objetos.
Destructores. Realizan tareas de limpieza después de que los objetos se destruyen de forma implícita o explícita.
Funciones de conversión. Convierten tipos de clase y otros tipos.
Función de operador new. Asigna el almacenamiento dinámicamente.
Función de operador delete. Libera el almacenamiento asignado mediante el operador new.
Operador de asignación (operator=). Se usa cuando se produce una asignación.
Los elementos de la lista anterior pueden estar definidos por el usuario para cada clase.
Las funciones miembro especiales se rigen por las mismas reglas de acceso que otras funciones miembro. Las reglas de acceso se describen en Control de acceso a miembros. En la tabla siguiente se resume el comportamiento de las funciones miembro y friend.
Resumen del comportamiento de las funciones
Tipo de función |
¿La función se hereda de la clase base? |
¿La función puede ser virtual? |
¿La función puede devolver un valor? |
¿La función es miembro o friend? |
¿El compilador generará la función si no lo hace el usuario? |
---|---|---|---|---|---|
Constructor |
No |
No |
No |
Miembro |
Sí |
Constructor de copia |
No |
No |
No |
Miembro |
Sí |
Destructor |
No |
Sí |
No |
Miembro |
Sí |
Conversión |
Sí |
Sí |
No |
Miembro |
No |
Asignación (operator=) |
No |
Sí |
Sí |
Miembro |
Sí |
new |
Sí |
No |
void* |
Miembro estático |
No |
eliminar |
Sí |
No |
void |
Miembro estático |
No |
Otras funciones miembro |
Sí |
Sí |
Sí |
Miembro |
No |
Funciones friend |
No |
No |
Sí |
Friend |
No |