¿Cuál es la diferencia entre el nuevo operador y el operador eliminar en C ++?

los diferencia principal entre el nuevo operador y el borrado en C ++ es que new se usa para asignar memoria a un objeto o una matriz, mientras que delete se usa para desasignar la memoria asignada usando el nuevo operador.

Hay dos tipos de memoria como memoria estática y dinámica. Supongamos una declaración como int a; matriz int [10]; El programador ya sabe cuánta memoria requieren estas variables. Esta memoria es una memoria estática. A veces es difícil determinar cuánta memoria se necesita para almacenar datos. Por lo tanto, la memoria debe ser determinada en tiempo de ejecución. Este tipo de memoria es una memoria dinámica. Usamos operadores nuevos y eliminados en estas situaciones..

Áreas clave cubiertas

1. Qué es nuevo operador en C++
     - Definición, Funcionalidad
2. ¿Qué es el operador eliminar en C++
     - Definición, Funcionalidad
3. ¿Cuál es la diferencia entre operador nuevo y borrado en C?++
     - Comparación de diferencias clave

Términos clave

C ++, eliminar operador, asignación de memoria, nuevo operador

Que hay de nuevo en C++

El nuevo operador asigna memoria. Consulte el siguiente programa.

Figura 1: Programa C ++ 1 con nuevo operador

De acuerdo con el programa anterior, ptr es un puntero de tipo entero. En la línea 7, ptr apunta a la memoria de tipo int. En la línea 8, el valor ptr apuntando para convertirse en 10. Impresión * p dará el valor 10.

Del mismo modo, es posible crear matrices utilizando nuevos como sigue.

Figura 2: Programa C ++ 2 con nuevo operador.

De acuerdo con el programa anterior, ptr es un puntero de tipo entero. En la línea 8, ptr apunta a la memoria de tipo int que puede almacenar 5 elementos enteros. Luego, los valores enteros se almacenan en la matriz. Finalmente, para el bucle se itera a través de la matriz e imprimirá los valores.

Además, es posible crear nuevos objetos utilizando el nuevo operador. Consulte el siguiente ejemplo.

Figura 3: Programa C ++ 3 con nuevo operador.

La clase es estudiante, y tiene el constructor. En el programa principal, ptr es un puntero de tipo de estudiante. En la línea 13, se llama al constructor. Por lo tanto, se crea un objeto de tipo Estudiante. La instrucción cout dentro del constructor de Student se ejecuta, y esa declaración se muestra en la consola.

Qué es eliminar en C++

El operador de eliminación ayuda a desasignar la memoria. Consulte el siguiente programa.

Figura 4: programa 1 de C ++ con operador de borrado

En el programa anterior, ptr es un puntero de tipo int. En la línea 7, apunta a la memoria de tipo int, mientras que en la línea 8, se le asigna el valor 10. Además, en la línea 11, se elimina ptr.

Figura 5: Programa C ++ 2 con operador de borrado

De acuerdo con el programa anterior, ptr es un puntero de tipo entero. En la línea 8, ptr apunta a la memoria de tipo int, que puede almacenar 2 elementos enteros. Luego, los valores enteros se almacenan en la matriz. En la línea 12, se elimina ptr. El operador de borrado desasigna la memoria..

Diferencia entre nuevo y eliminar operador en C++

Definición

En resumen, new es un operador en C ++ que asigna memoria para un objeto o una matriz de objetos. En contraste, eliminar es un operador en C ++ que desasigna un bloque de memoria previamente asignado para un objeto creado con el nuevo operador. Estas definiciones contienen la principal diferencia entre el nuevo operador y el operador de borrado en C++.

Uso

Además, el nuevo operador ayuda a asignar memoria para una matriz o un objeto, mientras que el operador de eliminación ayuda a desasignar la memoria asignada a un objeto particular o una matriz. Por lo tanto, esta es otra diferencia entre operador nuevo y borrado en C++.

Conclusión

La diferencia básica entre el nuevo operador y el operador de borrado en C ++ es que el nuevo se usa para asignar memoria para un objeto o una matriz, mientras que el borrado se usa para desasignar la memoria asignada usando el nuevo operador.

Referencia:

1. Nuevo OPERADOR EN C - 47, Codearchery, 6 de marzo de 2017, disponible aquí.
2. Eliminar operador en C - 48, Codearchery, 22 de marzo de 2017, disponible aquí.