problema de indireccion en llamada a funcion miembro
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
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
// 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));
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));
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.
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.
