Cuando define un constructor de clase en una clase base (es decir, para establecer una variable de clase estática), ¿es posible anular este constructor de clase en una clase derivada y llamar al constructor desde su padre jerárquico con heredado?¿Puedes anular un constructor de clase y usar heredado?
Ejemplo:
TBaseclass = class(TObject)
public
class constructor ClassCreate; virtual;
end;
TOtherClass = class(TBaseClass)
public
class constructor ClassCreate; override;
end;
**implementation**
class constructor TBaseClass.ClassCreate;
begin
//do some baseclass stuff
end;
class constructor TotherClass.ClassCreate;
begin
inherited;
//do some other stuff
end;
+1 para "el compilador las inserta automáticamente en función de qué clases se utilizan en un programa". Los constructores de clase principalmente hacen que los enlaces inteligentes sean más eficientes. (porque la inicialización de vars relacionados se vuelve condicional en el uso de la clase) –
No, @Marjan. No fue un voto inexplicable. Fue un voto de alguien que confundió al "constructor de la clase" con el "constructor" y luego se opuso a las afirmaciones de David y yo de que no podían ser virtuales y que no servirían de nada si pudieran. Aquellos con suficiente reputación pueden ver la respuesta de "refutación" que luego fue eliminada porque señalé el malentendido en terminología. Los comentarios que explican los votos ya han sido eliminados. –
Para ser sincero, el verdadero detalle de la respuesta está muy por encima de mi cabeza, simplemente porque nunca tuve que hacer tal cosa. Pero Rob, +1, eres realmente un maestro de la explicación. –