30. maj 2008 - 19:36Der er
11 kommentarer og 1 løsning
Simpel spm omkring overload
Hej. Vil lige spørge om der kan spares noget af koden i dette eksempel (enten før eller efter implementation)...
- det er jo samme kode i hver procedure efter implementation.
function same(const a,b:byte):boolean;overload; function same(const a,b:smallInt):boolean;overload; function same(const a,b:longInt):boolean;overload; function same(const a,b:int64):boolean;overload; function same(const a,b:char):boolean;overload; function same(const a,b:extended):boolean;overload; function same(const a,b:handleName):boolean;overload; function same(const a,b:ansiString):boolean;overload;
implementation
function same(const a,b:byte):boolean;begin result:=a=b end; function same(const a,b:smallInt):boolean;begin result:=a=b end; function same(const a,b:longInt):boolean;begin result:=a=b end; function same(const a,b:int64):boolean;begin result:=a=b end; function same(const a,b:char):boolean;begin result:=a=b end; function same(const a,b:extended):boolean;begin result:=a=b end; function same(const a,b:string):boolean;begin result:=a=b end;
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Hvis jeg kun sletter dem efter implementation siger den "Unsatisfied forward or external declaration", og hvis man fjerner eks byte og smallInt, vil kompileren jo ikke acceptere disse typer efterfølgende
Ok, det virker med byte og smallInt, selvom jeg nu kun har beholdt disse 4.
function same(const a,b:longInt):boolean;overload; function same(const a,b:int64):boolean;overload; function same(const a,b:extended):boolean;overload; function same(const a,b:string):boolean;overload;
implementation
function same(const a,b:longInt):boolean;begin result:=a=b end; function same(const a,b:int64):boolean;begin result:=a=b end; function same(const a,b:extended):boolean;begin result:=a=b end; function same(const a,b:string):boolean;begin result:=a=b end;
Derudover vil jeg gerne vide, om der kan spares i forhold til balancen - altså hvis der er 4 deklareringer før implementation, skal der så også være 4 efter, eller kan der laves en fælles på en måde
Hvis du kigger på Delphi's egne funktioner, så vil du at rigtigt mange af dem tager en extended som argument for at undgå en stribe duplikater.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.