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

Haciendo un vector de clases

Estas en el tema de Haciendo un vector de clases en el foro de C/C++ en Foros del Web. hola, estoy intentando hacer una clase(ConjuntoTrabajos) que sea un vector de otra clase mas pequeña(Trabajo), pero todo el rato me da el mismo error: Conjunto_Trabajos.cpp: ...
  #1 (permalink)  
Antiguo 19/11/2008, 10:03
 
Fecha de Ingreso: noviembre-2008
Mensajes: 6
Antigüedad: 15 años, 5 meses
Puntos: 0
Haciendo un vector de clases

hola, estoy intentando hacer una clase(ConjuntoTrabajos) que sea un vector de otra clase mas pequeña(Trabajo), pero todo el rato me da el mismo error:

Conjunto_Trabajos.cpp: In member function ‘void Conjunto_Trabajos::puntos(int, int)’:
Conjunto_Trabajos.cpp:21: error: ‘class std::vector<Trabajo, std::allocator<Trabajo> >’ has no member named ‘puntuar’


el codigo que da problemas es este:

en el .cpp:

void Conjunto_Trabajos::puntos (int n,int v){
datos[n].puntuar(v);
}

esta funcion llama a puntuar, una funcion de la clase Trabajo que sirve para modificar la variable que contiene la nota


en el hpp:

vector<Trabajo> datos[TOTAL_TRABAJOS];

asi es como lo he declarado en el hpp dentro de private:

basicamente lo que intento es que dado un trabajo n se le ponga la nota m, si alguien me puede ayudar estaria muy agradecido, llevo un rato largo ya con esto...
  #2 (permalink)  
Antiguo 20/11/2008, 03:10
 
Fecha de Ingreso: noviembre-2008
Mensajes: 6
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Haciendo un vector de clases

he cambiado en el hpp la linia donde ponia:

vector<Trabajo> datos[TOTAL_TRABAJOS];

y he puesto:

Trabajo datos[TOTAL_TRABAJOS];

ahora me compila, pero al linkar con trabajo.o me da el siguiente error:


Trabajo.o: In function `Trabajo::Trabajo()':
Trabajo.cpp:(.text+0x0): multiple definition of `Trabajo::Trabajo()'
Conjunto_Trabajos.o:Conjunto_Trabajos.cpp:(.text+0 x0): first defined here
/usr/bin/ld: Warning: size of symbol `Trabajo::Trabajo()' changed from 5 in Conjunto_Trabajos.o to 21 in Trabajo.o
Trabajo.o: In function `Trabajo::Trabajo()':
Trabajo.cpp:(.text+0x16): multiple definition of `Trabajo::Trabajo()'
Conjunto_Trabajos.o:Conjunto_Trabajos.cpp:(.text+0 x6): first defined here
/usr/bin/ld: Warning: size of symbol `Trabajo::Trabajo()' changed from 5 in Conjunto_Trabajos.o to 21 in Trabajo.o

no se que quiere decir con multiple definition, espero que alguien pueda ayudarme con esto
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 14:36.