Skillnaden mellan statisk och dynamisk bindning

Författare: Laura McKinney
Skapelsedatum: 1 April 2021
Uppdatera Datum: 1 Juli 2024
Anonim
Java Interview 04 - Static Binding Vs Dynamic Binding
Video: Java Interview 04 - Static Binding Vs Dynamic Binding

Innehåll


Bindning av associering av en "funktionsdefinition" till ett "funktionssamtal" eller en koppling av ett "värde" till en "variabel" kallas "bindande". Under sammanställningen ges varje "funktionsdefinition" en minnesadress; så snart funktionssamtal är gjort flyttar kontrollen av programkörningen till den minnesadressen och får funktionskoden lagrad på den platsen exekverad, detta är bindning av 'funktionssamtal' till 'funktionens definition'. Bindning kan klassificeras som "statisk bindning" och "dynamisk bindning".

Om det redan är känt före körning, vilken funktion kommer att åberopas eller vilket värde som tilldelas en variabel, är det en 'statisk bindning'. om det känner till vid körningstid kallas det 'dynamisk bindning'.

  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. Slutsats

Jämförelsediagram:

Grund för jämförelseStatisk bindningDynamisk bindning
HändelsehändelseHändelser inträffar vid sammanställningstiden är "Statisk bindning".
Händelser som inträffar vid körning är "Dynamisk bindning".
InformationAll information som krävs för att ringa en funktion är känd vid sammanställningstidpunkten.All information behöver ringa en funktion lär känna vid körning.
FördelEffektivitet.Flexibilitet.
TidSnabb exekvering.Långsam körning.
alternativt namnTidig bindning.Sen bindning.
ExempelÖverbelastat funktionssamtal, överbelastade operatörer.Virtuell funktion i C ++, åsidosatta metoder i java.

Definitioner av statisk bindning

När kompilatorn bekräftar all information som krävs för att ringa en funktion eller alla värden på variablerna under kompileringstiden, kallas den "statisk bindning”. Eftersom all nödvändig information är känd före körning, ökar den programeffektiviteten och den ökar också hastigheten för genomförandet av ett program.


Statisk bindning gör ett program mycket effektivt, men det minskar programflexibiliteten, eftersom 'värden på variabeln' och 'funktionssamtal' är fördefinierade i programmet. Statisk bindning implementeras i ett program vid kodningstillfället.

Överbelastning av en funktion eller en operatör är exemplet på kompileringstid polymorfism, dvs statisk bindning.

Implementering av statisk bindning i C ++ med ett exempel på överbelastning

#inkludera med namnutrymme std; klassöverbelastning {int a, b; public: int load (int x) {// first load () -funktion. a = x; cout << "Värdet på x är" <funkt (); // Ovanstående uttalande avgör vilken klassfunktion som ska åberopas. p = & d1; // Vlaue av pekaren ändras. p-> funkt (); // Ovanstående uttalande avgör vilken klassfunktion som ska åberopas. p = & d2; // Återigen växlar pekaren för pekaren. p-> funkt (); // Ovanstående uttalande avgör vilken klassfunktion som ska åberopas. retur 0; }

Här ändras pekarens värde när programmet är i körning och pekarens värde avgör vilken klassens funktion som ska åberopas. Så här tillhandahålls informationen vid körning, det tar tid att binda data som bromsar exekveringen.


  1. Händelser som inträffar vid sammanställningstid, som en funktionskod är associerad med ett funktionssamtal eller tilldelning av värde till en variabel, kallas statisk / tidig bindning. Tvärtom, när dessa uppgifter utförs under körning kallas de dynamisk / sen bindning.
  2. "Effektivitet" ökar i statisk bindning, eftersom all data samlas in före exekveringen. Men i dynamisk bindning anskaffas data vid körning så vi kan bestämma vilket värde som ska tilldelas en variabel och vilken funktion som ska anropas vid körning, vilket gör utförandet "flexibel".
  3. "Statisk bindning" gör verkställandet av ett program "snabbare" eftersom all information som behövs för att köra ett program är känd innan den körs. I 'dynamisk bindning' är data som behövs för att köra ett program kända för kompilatorn vid tidpunkten för exekvering som tar tid att binda värden till identifierare; följaktligen gör det programmets körning långsammare.
  4. Statisk bindning kallas också tidig bindning eftersom funktionskoden är associerad med funktionssamtal under kompileringstiden, vilket är tidigare än dynamisk bindning där funktionskod är associerad med funktionssamtal under körning och det kallas också sen bindning.

Slutsats:

Men vi drar slutsatsen att när vi har förkunskaper om värdena på variabel- och funktionssamtal tillämpar vi den statiska bindningen. Omvänt, i dynamisk bindning, tillhandahåller vi all information vid genomförandet.