SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: pacorubio77 en Domingo 9 de Noviembre de 2008, 12:01

Título: no encuentro error en el paso de parametros,
Publicado por: pacorubio77 en Domingo 9 de Noviembre de 2008, 12:01
Hola,se que fallo en el paso de parámetros,tengo el siguiente método:

void Especialidad::asignarMedico(const Paciente &p){

   int pos;
   pos=MenorCarga();
   medicos[pos]->addPaciente(p);
}

que como veis utilizo addPaciente(p),pero claro la implementacion de este método es:

void Medico::addPaciente(Paciente *p){

   pacientes.push_back(p);
}

y su prototipo es:

void addPaciente(Paciente *p);

Se que el error esta cuando hago medicos[pos]->addPaciente(p),como le indico que p tiene que ser un puntero?
Título: Re: no encuentro error en el paso de parametros,
Publicado por: m0skit0 en Domingo 9 de Noviembre de 2008, 12:44
Usa las etiquetas de código.

Código: C
  1. void Especialidad::asignarMedico(const Paciente &p){
  2.  
  3. int pos;
  4. pos=MenorCarga();
  5. medicos[pos]->addPaciente(&p);
  6. }
  7.  
Título: Re: no encuentro error en el paso de parametros,
Publicado por: pacorubio77 en Domingo 9 de Noviembre de 2008, 18:07
Gracias por la contestacion,pero sigue dando fallo aunque ponga medicos[pos]->addPaciente(&p);
sigo investigando,un saludo,espero respuesta.Gracias.
Título: Re: no encuentro error en el paso de parametros,
Publicado por: m0skit0 en Domingo 9 de Noviembre de 2008, 20:53
Porque lo pasas como const &p... Pásalo normal, como p.
Título: Re: no encuentro error en el paso de parametros,
Publicado por: pacorubio77 en Domingo 9 de Noviembre de 2008, 21:21
Pero eso no es solucion,si esta como const se tiene que quedar como const,lo he arreglado poniendo esto de la siguiente manera:
medicos[pos]->addPaciente((Paciente *)&p);

Pero no se el por què,,,me puedes ayudar,????
Título: Re: no encuentro error en el paso de parametros,
Publicado por: m0skit0 en Domingo 9 de Noviembre de 2008, 21:37
Cita de: "pacorubio77"
Pero eso no es solución
Yo qué sé qué te piden en la tarea :P

Cita de: "pacorubio77"
Pero no se el por què,,,me puedes ayudar,????
Bueno has hecho un cast especificando que el puntero &p es un puntero a la clase Paciente. Eso es todo.