Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2010, 12:16
deiviz2001
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Problema con operator= en una clase propia C++

Hola compañeros,

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:
	b = getDatosJugador(indiceJugador).getCartas();
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.

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:
//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;
}
Si necesitais alguna aclaración más no dudeis en indicarlo. Gracias