Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - vazquinhos

#1
Programación C/C++ / iteradores
2 Noviembre 2012, 17:10 PM
Muy buenas chicos,

estoy haciendo un programilla en c++ con open gl y glut.

Mi problema es que he declarado esto como estructura y una variable privada en mi clase Object3D

struct Point3D
{
    float x;
    float y;
    float z;
};

  std::list<Point3D> _lPoints;


la he rellenado con un archivo txt con el numero de vertices y ahora queria representar los puntos:

Object3D::drawPoints()
{
    //clear color and depth buffer
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();//load identity matrix
   
    glTranslatef(0.0f,0.0f,-4.0f);//move forward 4 units
   
    glColor3f(0.0f,0.0f,1.0f); //blue color
   
    glPointSize(10.0f);//set point size to 10 pixels

    glBegin(GL_POINTS); //starts drawing of points
    //_nVertex es el numero de vertices que quiero
     for (int i = 0; i <_nVertex;i++)
    {
     //aqui no se como acceder a los valores de mi _lPoints
     }
      //glVertex3f(1.0f,1.0f,0.0f);//upper-right corner
    glEnd();//end drawing of points
}


Como debería accerder a mi lista de points? es la primera vez que trabajo con la std::list y no se muy bien como trabajar.

muchas gracias!
#2
Programación C/C++ / Re: Problema con punteros.
20 Septiembre 2012, 10:33 AM
He quitado el puntero a Tnodo y ya me funciona la asignacion y todo lo demas, ahora tengo problemas al printar que no me printa nada xdddd.

Gracias!
#3
Programación C/C++ / Problema con punteros.
19 Septiembre 2012, 11:01 AM
Tengo un poco de lio con los punteros.
Me he declarado una clase

lifo.h
#include<iostream>

struct Tnodo
{
  Tnodo *ant;
  int datos; 
};
typedef Tnodo *Tpila;

class lifo
{
private:
Tnodo *stack;
public:
//Constructores
lifo(void);
//Mira si la pila esta vacia
bool isEmpty(void);
//Mira el primer elemento de la pila sin quitarlo
int peek(void);
//Elimina el ultimo elemento
void pop(void);
//Inserta un nuevo elemento en la pila
void push(int new_element);
//Muestra por pantalla los elementos de nuestra pila
void print(void);
};


He hecho su implementacion, pero no me hace bien las cosas por tema de acceso a punteros.

lifo.cpp
#include"lifo.h"

//Constructor de la clase lifo
lifo::lifo(void)
{
stack->datos = 0;
stack->ant = NULL;
}

void lifo::push(int new_element)
{
Tnodo *nodo;
nodo->datos = new_element;
if(stack->ant == NULL)
{
nodo->ant = NULL;
}else
{
[s]nodo->ant = stack->ant;[/s]
}
stack->ant = &(*nodo);
}

void lifo::pop(void)
{
if(stack->ant == NULL)
{
std::cout<<"No hay elementos"<<std::endl;
}else
{
Tnodo * aux;
aux->ant = stack->ant;
delete(stack->ant);
stack->ant=aux->ant;
delete(aux);
}
}

int lifo::peek(void)
{
if (stack->ant != NULL)
{
return(stack->ant->datos);
}else
{
std::cout<<"No hay elementos"<<std::endl;
}
}

bool lifo::isEmpty(void)
{
if(stack->ant == NULL)
{
return(false);
}else
{
return(true);
}
}

void lifo::print(void){

Tnodo *aux;
aux->ant = stack->ant;
while(aux->ant != NULL)
{
std::cout<<"|"<<aux->ant->datos<<"|-->";
}
}


y aqui estaba comprobando que  funcionase.
main.cpp
#include"lifo.h"

void main()
{
lifo pila;
pila.push(5);
pila.print();

}


He estado debugando y el problema son los punteros, pero al declarlos dentro de la clase no se como acceder a ellos bien bien o asignarles valores. Algunos puntos que veo criticos.

stack->ant = &(*nodo);
aux->ant->datos;
stack->datos = 0;
delete(stack->ant);

Gracias
#4
por lo tanto cuando acabe la funcion el valor de la variable volvera a su estado original no¿?

Gracias.
#5
Hola estoy mirando tutoriales, libros etc etc para c++ y tengo unas dudillas con los apuntadores.

Por ejemplo cuando declaras una clase en c++ en su fichero .h, hacen un const variable& el "&" al final de la variable que significa?

Gracias
#6
Programación C/C++ / Re: [Libros/Papers] C/C++
22 Agosto 2012, 09:39 AM
Muchas gracias por el aporte!

Me irán  muy bien todos estos libros ;-)