Hola.
Probá de este modo:
Código:
class TBase { // clase abstracta (tiene al menos una función virtual pura)
public:
virtual void __fastcall Funcion(int Param) = 0; // pure virtual
};
class TDerivada: public TBase { // derivada de Base
public:
void __fastcall Funcion(float Param) {
ShowMessage(FloatToStr(Param * 2));
};
};
/* llamada de ejemplo */
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TDerivada *D;
D->Funcion(3.141592654);
}
Si
TDerivada no proporciona una definición del método
Funcion, se convertirá en una función
pure virtual de la clase
TDerivada.
Por otro lado, si llamás a una función virtual pura directa o indirectamente te va a provocar un error de ejecución.
Un saludo.