De titel is niet duidelijk, maar het komst het dichtst bij wat ik wil bereiken:
Ik heb een class gemaakt met een aantal constructors erin, die allemaal overloaded zijn. Al die constructors hebben een aantal parameters. Mijn class is nergens van afgeleid, en dus wordt de standaard TObject ancestor gebruikt.
In TObject zit echter ook een constructor (die redelijk leeg is), en die public is. Dat houdt dus in dat in onderstaande voorbeeldje, TMyClass ook gemaakt kan worden met TMyClass.Create; maar dat zou hopeloos mis gaan.
Ik heb geprobeerd em te her-declareren in een private-sectie. Gevolg: hij blijft public. Ik heb geprobeerd een van de twee constructor niet-overloaded te maken. Gevolg: compiler-error.
Enige uitweg die ik zie is de Create zonder parameters in vredesnaam maar te implementeren en een exception erin te zetten ofzo. Maar dat is wel heel vies, IMO.
Ik heb een class gemaakt met een aantal constructors erin, die allemaal overloaded zijn. Al die constructors hebben een aantal parameters. Mijn class is nergens van afgeleid, en dus wordt de standaard TObject ancestor gebruikt.
In TObject zit echter ook een constructor (die redelijk leeg is), en die public is. Dat houdt dus in dat in onderstaande voorbeeldje, TMyClass ook gemaakt kan worden met TMyClass.Create; maar dat zou hopeloos mis gaan.
Delphi:
Ik wil dus de Create zonder parameters verbergen bij de aanroep. Maar hoe?1
2
3
4
5
| type TMyClass = class constructor Create(Names: TStringList); overload; constructor Create(const Name: string); overload; end; |
Ik heb geprobeerd em te her-declareren in een private-sectie. Gevolg: hij blijft public. Ik heb geprobeerd een van de twee constructor niet-overloaded te maken. Gevolg: compiler-error.
Enige uitweg die ik zie is de Create zonder parameters in vredesnaam maar te implementeren en een exception erin te zetten ofzo. Maar dat is wel heel vies, IMO.
日本!🎌