Forskjellen mellom statisk og dynamisk innbinding
Innhold
- Sammenligningstabell:
- Definisjoner av statisk binding
- Implementering av statisk binding i C ++ med et eksempel på overbelastning
- Konklusjon:
Å binde tilknytning av en ‘funksjonsdefinisjon’ til en ‘funksjonsanrop’ eller en tilknytning av en ‘verdi’ til en ‘variabel’, kalles ‘binding’. Under samlingen får hver ‘funksjonsdefinisjon’ en minneadresse; så snart funksjonsanrop er utført, flytter kontrollen av programutførelsen til den minneadressen og får funksjonskoden lagret på det stedet utført, dette er binding av ‘funksjonsanrop’ til ‘funksjonsdefinisjon’. Binding kan klassifiseres som ‘statisk binding’ og ‘dynamisk binding’.
Hvis det allerede er kjent før kjøretid, hvilken funksjon som blir påkalt eller hvilken verdi som blir tildelt en variabel, er det en "statisk binding". hvis det blir kjent med kjøretiden, kalles det ‘dynamisk binding’.
- Sammenligningstabell
- Definisjon
- Viktige forskjeller
- Konklusjon
Sammenligningstabell:
Grunnlag for sammenligning | Statisk binding | Dynamisk innbinding |
---|---|---|
Hendelsesforekomst | Hendelser som oppstår på kompileringstidspunktet er "Statisk binding". | Hendelser som oppstår ved kjøretid er "Dynamisk innbinding". |
Informasjon | All informasjon som trengs for å ringe en funksjon er kjent på kompileringstidspunktet. | All informasjon som trengs for å ringe en funksjon blir kjent med kjøretid. |
Fordel | Effektivitet. | Fleksibilitet. |
Tid | Rask utførelse. | Langsom henrettelse. |
Alternativt navn | Tidlig binding. | Sen binding. |
Eksempel | Overbelastet funksjonsanrop, overbelastede operatører. | Virtuell funksjon i C ++, overstyrte metoder i java. |
Definisjoner av statisk binding
Når kompilatoren erkjenner all informasjonen som kreves for å ringe til en funksjon eller alle verdiene til variablene i løpet av kompileringstiden, kalles den "statisk binding“. Siden all nødvendig informasjon er kjent før kjøretid, øker den programeffektiviteten, og den forbedrer også hastigheten på utførelse av et program.
Static Binding gjør et program veldig effektivt, men det avviser programfleksibiliteten, ettersom ‘verdier av variabelen’ og ‘funksjonsanrop’ er forhåndsdefinert i programmet. Statisk binding er implementert i et program på kodingstidspunktet.
Overbelastning av en funksjon eller en operatør er eksemplet på kompileringstid-polymorfisme, dvs. statisk binding.
Implementering av statisk binding i C ++ med et eksempel på overbelastning
#inkludere Her endres pekerens verdi etter hvert som programmet er i utførelse og verdien til pekeren bestemmer hvilken klasses funksjon som skal påberopes. Så her blir informasjonen gitt ved kjøretid, det tar tid å binde dataene som bremser utførelsen. Vi konkluderer imidlertid at når vi har forkunnskaper om verdiene til variabel og funksjonsanrop, bruker vi den statiske bindingen. Motsatt, i dynamisk binding, gir vi all informasjonen på utførelsestidspunktet.
Konklusjon: