Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con operator= en una clase propia C++

Estas en el tema de Problema con operator= en una clase propia C++ en el foro de C/C++ en Foros del Web. 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. ...
  #1 (permalink)  
Antiguo 07/01/2010, 12:16
 
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
  #2 (permalink)  
Antiguo 08/01/2010, 13:29
Avatar de LuisdaviD  
Fecha de Ingreso: octubre-2006
Mensajes: 74
Antigüedad: 17 años, 5 meses
Puntos: 2
Respuesta: Problema con operator= en una clase propia C++

Prueba escribiendo esto debajo de la declaración:

b = new Baraja();

Saludos,
  #3 (permalink)  
Antiguo 10/01/2010, 18:04
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema con operator= en una clase propia C++

Parece que el error era bastante tonto olvidé hacer referencia a otro archivo cpp durante la compilación y por eso no encontraba la definición del operator=.

Gracias por la atención :)

Etiquetas: clase, propia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:05.