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

error sobrecarga de operador +

Estas en el tema de error sobrecarga de operador + en el foro de C/C++ en Foros del Web. Buenas.He sobrecargado 2 veces el operador + ,situando estas funciones como friends dentro de mi clase , e implementandolas en mi .cpp. Pues bien...una vez ...
  #1 (permalink)  
Antiguo 10/08/2007, 02:25
 
Fecha de Ingreso: agosto-2007
Mensajes: 4
Antigüedad: 17 años, 4 meses
Puntos: 0
error sobrecarga de operador +

Buenas.He sobrecargado 2 veces el operador + ,situando estas funciones como friends dentro de mi clase , e implementandolas en mi .cpp.

Pues bien...una vez que compilo(en linux) me da errores, en los que básicamente se refiere a que estoy definiendo varias veces el mismo operador:


obj/programa.o: In function `operator+(punto const&, VectorPuntos&)':
/home/******/mp2/include/programapuntos.h:113: multiple definition of `operator+(punto const&, VectorPuntos&)'
obj/programapuntos.o:/home/******/mp2/src/programapuntos.cpp:167: first defined here
obj/programa.o: In function `operator+(VectorPuntos&, punto const&)':
/home/*******/mp2/include/programapuntos.h:95: multiple definition of `operator+(VectorPuntos&, punto const&)'
obj/programapuntos.o:/home/*******/mp2/src/programapuntos.cpp:149: first defined here
collect2: ld devolvió el estado de salida 1
make: *** [bin/programa_rec] Error 1
1

Las cabeceras de las sobrecargas :

friend VectorPuntos operator + ( VectorPuntos & v,const punto & pt);
friend VectorPuntos operator + (const punto & pt,VectorPuntos & v);

No entiendo la causa de ese error.

Saludos y gracias de antemano.
  #2 (permalink)  
Antiguo 13/08/2007, 12:38
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Re: error sobrecarga de operador +

Al parecer estas incluyendo el archivo de cabezera varias veces en el mismo lugar.
La solucion dificil, es revisar donde incluyes y seguir recursivamente todos los archivos incluidos hasta que te quede solo una linea......
La solucion sencilla es usar :
#ifndef NAME_OF_MYHEADER_AND_PROYECT
#define NAME_OF_MYHEADER_AND_PROYECT

//TODO el codigo de la cabecera.

#endif

Asi tedras 100% asegurado que este archivo solo se incluira una vez.

Saludos
  #3 (permalink)  
Antiguo 28/08/2007, 11:39
 
Fecha de Ingreso: agosto-2007
Mensajes: 4
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: error sobrecarga de operador +

Gracias por contestar.De todas formas ya solucione el fallo! Saludetes
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 17:57.