problema de indireccion en llamada a funcion miembro

dordocad
21 de Julio del 2004
Hola de nuevo! Sigo con mi lio con los punteros y las clases... Tengo un error de indireccion al llamar a una funcion de una clase. Tengo definidas 2 clases:

class Point {
protected:
float x,y,z;
public:
Point(float p1=0.0, float p2=0.0, float p3=0.0);
void Read_List(char *fichero, int num, Point *as);
}


class Triangle {
Point vert[3];
public:
void Load_Triangle(Point v1, Point v2, Point v3) {
vert[0]=v1;
vert[1]=v2;
vert[2]=v3;
}
}

Este es el codigo que me falla y no entiendo pq si una asignacion no da error la siguiente no admite.

---------------------------------------------------------

// Carga de una lista de puntos en VAR
Point *var= new Point[num_ptos];
*var->Read_List(filename,num_ptos,var);

// Cada triangulo se define con 3 puntos
Triangle* salida=new Triangle[num_triangles];
Point p1,p2,p3;
p1=*(var+0);
p2=*(var+1);
p3=*(var+5);

// Esta linea de definicion no me da problemas
*(salida+1)->Load_Triangle(p1,p3,p4);

// Esta si me da errores
*(salida+0)->Load_Triangle(*(var+0),p2,p3);


Supongo que sea una cosa sencilla, pero no se cual es. Alguna sugerencia??? GRACIAS

dordocad
21 de Julio del 2004
// Carga de una lista de puntos en VAR
Point *var= new Point[num_ptos];
*var->Read_List(filename,num_ptos,var);

// Cada triangulo se define con 3 puntos
Triangle* salida=new Triangle[num_triangles];

(salida+0)->Load_Triangle(*(var+0),*(var+1),*(var+5));
(salida+1)->Load_Triangle(*(var+0),*(var+1),*(var+4));

Malcom
21 de Julio del 2004
hola, en mi humilde opinion, no se si colocaste los ; al final de la definicion de cada clase, es decir;

class alfa
{
---
void funcion(void){}

} ;

lo otro es al llamar a una funcion miembro:
alfa *p;
p = new alfa;

es asi:
p->funcion();

no...:
*p->funcion();

podria ser eso q te esta provocando el error.
espero te ayude.