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

std::vector problemas al usarlo como miembro de clase

Estas en el tema de std::vector problemas al usarlo como miembro de clase en el foro de C/C++ en Foros del Web. Hola a todos! estoy teniendo un problema con los vectores que me esta volviendo loco, sobre todo por que intente de todo pero sigo sin ...
  #1 (permalink)  
Antiguo 24/06/2012, 12:04
Usuario no validado
 
Fecha de Ingreso: febrero-2012
Mensajes: 24
Antigüedad: 12 años, 2 meses
Puntos: 0
std::vector problemas al usarlo como miembro de clase

Hola a todos! estoy teniendo un problema con los vectores que me esta volviendo loco, sobre todo por que intente de todo pero sigo sin encontrar la razón del error.

primero el simple código:

cuadrado.h
Código C++:
Ver original
  1. #ifndef CUADRADO_H
  2. #define CUADRADO_H
  3.  
  4. #include<gl\glut.h>
  5. #include"objetos.h"
  6. #include<vector>
  7. using std::vector;
  8.  
  9. //tipos definidos
  10.  
  11.  
  12. class cuadrado : public objetos
  13. {
  14.    
  15.     public:
  16.             cuadrado();
  17.             ~cuadrado();
  18.  
  19.             //==========|Metodos SET|==========
  20.                 void setVertice(const vector<float> &);
  21.                 void setColor(const vector<float> &);
  22.                 void setPosicion(const vector<float> &);
  23.  
  24.             //==========|Metodos GET|==========
  25.                
  26.  
  27.             //==========|Funciones Miembro|==========
  28.                
  29.                 void dibujar();
  30.  
  31.     private:
  32.                 vector<vector<float>> vertices(4);
  33.                 vector<vector<float>> colores(4);
  34.                 vector<float> posicion(3);//mide la posicion desde el centro de la figura
  35.                 char* nombre;
  36. };
  37.  
  38. #endif


al compilar me da el siguiente error:

Código Apache:
Ver original
  1. 1>------ Operación Generar iniciada: proyecto: Opengl, configuración: Debug Win32 ------
  2. 1>  cuadrado.cpp
  3. 1>c:\users\fabian\documents\visual studio 2010\projects\opengl\opengl\cuadrado.h(32): error C2059: error de sintaxis : 'constante'
  4. 1>c:\users\fabian\documents\visual studio 2010\projects\opengl\opengl\cuadrado.h(33): error C2059: error de sintaxis : 'constante'
  5. 1>c:\users\fabian\documents\visual studio 2010\projects\opengl\opengl\cuadrado.h(34): error C2059: error de sintaxis : 'constante'
  6. ========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========


el inconveniente se da en los miembros privados de la clase "cuadrado.h", mas especificamente en estos:

vector<vector<float>> vertices(4);
vector<vector<float>> colores(4);
vector<float> posicion(3);//mide la posicion desde el centro

no se cual pueda ser el error, desde ya agradezco toda la ayuda, Saludos! y Gracias.
  #2 (permalink)  
Antiguo 24/06/2012, 21:09
Usuario no validado
 
Fecha de Ingreso: febrero-2012
Mensajes: 24
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: std::vector problemas al usarlo como miembro de clase

Hola a todos, ya me respondo a mi mismo, el inconveniente se encontraba en la inicializaciíon de los vectores peroo... ahora tengo otra duda....

La inicialización de un std::vector bidimensional (entre otras) es algo así:

vector<vector<float>> v(5,vector<float>(5));

pero por alguna razón me sigue dando error... todo va bien si no le indico los valores por defecto por Ej:

vector<vector<float>> v;

así me funciona correctamente. Si alguien sabe a que se debe le agradezco la explicación, saludos!!!
  #3 (permalink)  
Antiguo 25/06/2012, 06:51
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 12 años
Puntos: 28
Respuesta: std::vector problemas al usarlo como miembro de clase

prueba esto.

vector<vector<float> > v;
vector<float> a;
a.push_back(11);
v.push_back(a);



for (int i =0; i < v.size(); i++)
for (int j =0; j < v.size(); j++)
cout<<v[i][j];

s2
crono
  #4 (permalink)  
Antiguo 25/06/2012, 11:36
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: std::vector problemas al usarlo como miembro de clase

El problema esta que no puede inicializar vectores en la declaracion de la clase. Si o si debe estar dentro de una funcion o metodo.

En este caso en el constructor seria lo ideal.
  #5 (permalink)  
Antiguo 25/06/2012, 15:55
Usuario no validado
 
Fecha de Ingreso: febrero-2012
Mensajes: 24
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: std::vector problemas al usarlo como miembro de clase

Muchisimas gracias a ambos por las respuestas, el tema esta solucionado, era eso mismo, no se podia inicializar el vector en la declaración de la clase Saludos a todos y gracias nuevamente.

Etiquetas: clases, vectores
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 23:17.