• Domingo 15 de Diciembre de 2024, 08:48

Autor Tema:  de sintaxis de dicho método  (Leído 1149 veces)

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
de sintaxis de dicho método
« en: Martes 4 de Noviembre de 2008, 17:57 »
0
Hola a todos,mirar hay un fallo de compilacion que me dice lo siguiente:

g++ -g   -c -Iinclude -o lib/Habitacion.o lib/Habitacion.cc
lib/Habitacion.cc: In member function ‘Habitacion& Habitacion::operator=(const Habitacion&)’:
lib/Habitacion.cc:47: error: se dió un argumento de tipo ‘class Cama’ a ‘delete’, se esperaba un puntero
make: *** [lib/Habitacion.o] Error 1

y el método es el slguiente:

Habitacion &Habitacion::operator=(const Habitacion &h){
   
   vector<Cama *>::const_iterator it;

   if(this !=&h){
      numero=h.numero;
      
      //liberamos el vector de camas(del objeto implicito)
      for(it=camas.begin();it!=camas.end();it++){
         delete (**it);
      }
      //copiamos el vector de camas de h en el implicito
      for(it=h.camas.begin();it!=h.camas.end();it++){
         camas.push_back(new Cama(**it));
      }

   }

return *this;
}

el problema está en delete **it,cual es el fallo?,no consigo  verlo ..necesito ayuda,gracias.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: de sintaxis de dicho método
« Respuesta #1 en: Miércoles 5 de Noviembre de 2008, 06:50 »
0
Cita de: "pacorubio77"
delete (**it);
Cita de: "pacorubio77"
error: se dió un argumento de tipo ‘class Cama’ a ‘delete’, se esperaba un puntero
A ver, delete esperaba un puntero y le has pasado un objeto de clase Cama. Tienes que pasarle el puntero a ese objeto. ¿Qué tipo devuelve camas.begin()?

Y pon etiquetas de código, que llevas 103 posts... &lt;_&lt;