Los objetos que crees con un new se destruyen con delete, y el array no estaba creado con un new...
Si quieres crear el array de forma dinámica seria así, pero en este ejemplo los elementos del array son objetos teléfono y no punteros a objetos teléfono (hay que usar . en vez de -> y quitar los new en las asignaciones)
Código:
Telefono *telefono4 = newTelefono[2];
telefono4[0] = Telefono("927654321", "No", "María Paz");
telefono4[0].actualizarImporte(20);
cout << "Importe: " << telefono4[0].obtenerImporte() << endl;
telefono4[0].mostrar();
telefono4[1] = Telefono("927555555", "No", "Jesús Sanz");
telefono4[1].actualizarImporte(50);
cout << "Importe: " << telefono4[1].obtenerImporte() << endl;
telefono4[1].mostrar();
telefono4[0].mostrar();
telefono4[1].mostrar();
cout<<"Hola telefono 3"<<endl;
delete telefono3;
cout<<"Adios telefono 3"<<endl;
cout<<"Hola telefono 4"<<endl;
delete[] telefono4;
cout<<"Adios telefono 4"<<endl;
-----Actualizado-----
Aqui con un array (dinamico) de punteros a Telefono.
Código:
Telefono **telefono4;
telefono4 = new Telefono*[2];
telefono4[0] = newTelefono("927654321", "No", "María Paz");
telefono4[0]->actualizarImporte(20);
cout << "Importe: " << telefono4[0]->obtenerImporte() << endl;
telefono4[0]->mostrar();
telefono4[1] = newTelefono("927555555", "No", "Jesús Sanz");
telefono4[1]->actualizarImporte(50);
cout << "Importe: " << telefono4[1]->obtenerImporte() << endl;
telefono4[1]->mostrar();
telefono4[0]->mostrar();
telefono4[1]->mostrar();
...
delete[] telefono4; // solo se esta borrando el array y no los objetos que contiene!!!!
-----Actualizado-----
Iniciado por
The_Punisher
Sin llevarte la contraría no entiendo porque dices que no he creado el array de forma dinámica, el libro dice que así lo creo de forma dinámica y debería poder borrarlo así.
El array no esta creado de forma dinámica, los objetos que contienen si. Por eso hay que borrar los objetos pero no el array.
Iniciado por
The_Punisher
¿Cómo sería entonces la implementación correcta?
No se, la que funcione. XD
-----Actualizado-----
La ventaja de estas dos ultimas versiones que he puesto (las del array dinamico) es que puedes cambiar el 2 por una variable y cambiar el tamaño en tiempo de ejecución, la version que tu pusiste el tamaño se debe saber en tiempo de compilación.
De todas formas en estos casos es mejor usar algun contenedor de las STL, pero eso mas adelante.
Marcadores