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

c++ (problema al usar punteros con clases y vectores!!)

Estas en el tema de c++ (problema al usar punteros con clases y vectores!!) en el foro de C/C++ en Foros del Web. Por favor necesito que alguien me ayude!! quiero hacer un vector de objetos (CCeldas) y necesito que sea un puntero porque tengo que devolverlo en ...
  #1 (permalink)  
Antiguo 29/12/2007, 12:13
lna
 
Fecha de Ingreso: diciembre-2007
Mensajes: 2
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta c++ (problema al usar punteros con clases y vectores!!)

Por favor necesito que alguien me ayude!!
quiero hacer un vector de objetos (CCeldas) y necesito que sea un puntero porque tengo que devolverlo en una función. Lo he intentado con vectores normales:
CCeldas* celdita;
celdita= new CCeldas[5];
celdita[0]->m_punto1=p; //p es un punto

o con los de la libreria estandar:
std::vector <CCeldas>* celditas;
celditas= new std::vector<CCeldas>[5];
celditas[0]->m_punto1 = p;

Cuando compilo las dos primeras filas (las declaraciones) no me da error pero cundo intento acceder a las variables miembro de la clase CCeldas (por ejemplo m_punto1) me da 2 errores: " type 'CCeldas' does not have an overloaded member 'operator ->'" y "left of '->m_punto1' must point to class/struct/union"

Sin embargo no es problema de la clase CCeldas porque el siguiente codigo no da error:
CCeldas* celd;
celd= new CCeldas;
celd->m_punto1=p;

Tampoco el siguiente codigo da error:
int *b;
b=new int[5];
b[0]=3;


Entonces, si no es problema de punteros con clases ni de punteros con vectores ¿que problema hay de punteros con vectores y con clases?
¿QUE ES LO QUE ESTOY HACIENDO MAL?
  #2 (permalink)  
Antiguo 31/12/2007, 09:19
 
Fecha de Ingreso: febrero-2007
Mensajes: 163
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: c++ (problema al usar punteros con clases y vectores!!)

m_punto1 que tipo de datos es?, Fijate si esta definido porque me parece que no.
  #3 (permalink)  
Antiguo 31/12/2007, 11:40
Avatar de Solenbum  
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: c++ (problema al usar punteros con clases y vectores!!)

m_punto1 y p digo yo que son del mismo tipo de estructura o clase,
has sobrecargado el operador "=" por si acaso? de la cosa "CCelda" claro


por cierto:

"quiero hacer un vector de objetos (CCeldas) y necesito que sea un puntero porque tengo que devolverlo en una función. "

si quieres que sea cada posicion un puntero al objeto CCelda debe ser:
CCeldas** celdita; (vector de punteros a CCelda)

Obviamente implicará llamar al constructor de la cada en cada posicion del array una vez creado.
(1)
celdita = new CCelda[n]; //creas vector de punteros de tipo CCelda
(2)
//deberian apuntar a null o lo haces tu
for i desde 0 hasta n
celdita[i] = new CCelda; //creo puntero tipo CCelda en cada casilla

Destructor:
for i desde 0 hasta n
//quizas comprobante if celdita[i]
delete celdita[i]; //voy borrando lo que apunta cada casilla
delete [] celdita; //borro el vector de memoria


Digo esto porque tal y como lo tienes no se guarda un puntero a "CCelda" en cada posicion, sino un objeto CCelda.


ooo quizas he metido la pata y no te referis a eso sino a lo que es "m_punto1" ;)

Última edición por Solenbum; 31/12/2007 a las 11:50
  #4 (permalink)  
Antiguo 01/01/2008, 11:22
 
Fecha de Ingreso: febrero-2007
Mensajes: 163
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: c++ (problema al usar punteros con clases y vectores!!)

m_punto1 tiene que estar definido en la clase, estaria bueno que postees la definicion de la clase CCeldas.
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 22:45.