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;
}


