elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / iteradores en: 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

Código:
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:

Código:
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 / Programación C/C++ / Problema con punteros. en: 19 Septiembre 2012, 11:01 am
Tengo un poco de lio con los punteros.
Me he declarado una clase

lifo.h
Código:
#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
Código:
#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
Código:
#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
3  Programación / Programación C/C++ / Preguntillas sobre apuntadores en c++ en: 22 Agosto 2012, 09:41 am
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
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines