LLevo un par de horas intentando ver donde está el error en este código, a ver si podeis darme un poco de luz.
El problema está en la línea es la de asignación
Código:
Os pongo el fragmento de código, la función getDatosJugador(int) devuelve un jugador y getCartas() sobre una instancia de Jugador devuelve una baraja de cartas.b = getDatosJugador(indiceJugador).getCartas();
Es curioso porque si pongo la línea justo al declarar el objeto b, no da el error, pero si la dejo tal como está ahora, falla.
Código:
//Calcula la puntuacion del jugador void Juego21::puntuarJugador(int indiceJugador) { Baraja b; //= getDatosJugador(indiceJugador).getCartas(); double puntos = 0.0; b = getDatosJugador(indiceJugador).getCartas(); for(int i = 0; i < b.getNumCartas(); i++) puntos += b[i].getNumero(); setScore(indiceJugador,puntos); //Actualizar la puntuacion del jugador }
Código:
error: no match for 'operator=' in 'b=Jugador::getCartas()()'
Código:
Si necesitais alguna aclaración más no dudeis en indicarlo. Gracias //Devuelve un jugador del vector dado su indice Jugador Juego::getDatosJugador(int indiceJugador); //Devuelve una baraja de cartas (vector de cartas); Baraja getCartas(); //Operador igual para asignar barajas (_lasCartas es un vector de Cartas) Baraja& Baraja::operator=(Baraja &b2) { _lasCartas = b2._lasCartas; return *this; }