Estoy intentando crear una clase hija de TForm conDelphi/Pascal: la sobrecarga de un constructor con un prototipo diferente
- un constructor especial para determinados casos, y
- un constructor por defecto que va a mantener la compatibilidad con el código actual.
Este es el código que tengo ahora:
interface
TfrmEndoscopistSearch = class(TForm)
public
/// original constructor kept for compatibility
constructor Create(AOwner : TComponent); overload; override;
/// additional constructor allows for a caller-defined base data set
constructor Create(AOwner : TComponent; ADataSet : TDataSet; ACaption : string = ''); overload;
end;
Parece que funciona, pero siempre tengo la advertencia del compilador:
[Warning] test.pas(44): Method 'Create' hides virtual method of base type 'TCustomForm'
- Adición de "sobrecarga"; después de que el segundo constructor no compilará "[Error] test.pas (44): la declaración de 'Crear' difiere de la declaración anterior".
- haciendo que el segundo constructor se compile una función de clase sin errores ni advertencias, pero muere con una infracción de acceso en tiempo de ejecución (todos los miembros vars son nulos).
bango! La palabra clave "reintroducir" es exactamente lo que se necesita. El constructor original también es necesario porque establece el conjunto de datos en el valor predeterminado adecuado. –