help, ayuda, etc, etc.

martin ribelotta
26 de Febrero del 2004
Qusiera saver por que es ilegal el siguiente codigo en C++ si tecnicamente se puede codificar en ensamblador:

class cbase {
public:
void (*cbase::cb)(void);
cbase(...)
...
};
....
class tbutton: public cbase {
public.....
};
....
class TAPP: public cbase {
...
void onclick(void);
..
};
....
TAPP prog();
...
tbutton b1(...);
b1.cb = &(prog.onclick); <------ Alguen que le dga que se puede !!!!!!

Es para una GUI en DOS
gracias.

Alejandro 2.0
26 de Febrero del 2004
Nones, en C++ estándar no se puede asignar una función miembro de una clase derivada a un puntero miembro de una clase base.
Existe alguna alternativa, por ejemplo, el Builder tiene la extención "__closure" precisamente para eso.

Alejandro