Rozdíl mezi statickou a dynamickou vazbou
![Rozdíl mezi statickou a dynamickou vazbou - Technologie Rozdíl mezi statickou a dynamickou vazbou - Technologie](https://a.fondoperlaterra.org/technology-differences/difference-between-static-and-dynamic-binding.jpg)
Obsah
- Srovnávací tabulka:
- Definice statické vazby
- Implementace statické vazby v C ++ s ukázkou přetížení
- Závěr:
Vazebné přiřazení „definice funkce“ k „volání funkce“ nebo přidružení „hodnoty“ k „proměnné“ se nazývá „závazné“. Během kompilace je každé „definici funkce“ přiřazena adresa paměti; Jakmile je volání funkce ukončeno, přesune se řízení provádění programu na tuto paměťovou adresu a provede se uložení kódu funkce na tomto místě. Jedná se o vazbu „volání funkce“ na „definici funkce“. Vazba může být klasifikována jako „statická vazba“ a „dynamická vazba“.
Pokud již je známo před spuštěním, která funkce bude vyvolána nebo jaká hodnota je přiřazena proměnné, jedná se o „statickou vazbu“. pokud se to za běhu dozví, nazývá se „dynamická vazba“.
- Srovnávací tabulka
- Definice
- Klíčové rozdíly
- Závěr
Srovnávací tabulka:
Základ pro srovnání | Statická vazba | Dynamická vazba |
---|---|---|
Výskyt události | Události, ke kterým dochází v době kompilace, jsou „statická vazba“. | Události, ke kterým dochází v době běhu, jsou „Dynamická vazba“. |
Informace | Všechny informace potřebné k vyvolání funkce jsou známy při kompilaci. | Všechny informace je třeba zavolat, aby se funkce dozvěděla za běhu. |
Výhoda | Účinnost. | Flexibilita. |
Čas | Rychlé provedení. | Pomalé provádění. |
Alternativní jméno | Včasná vazba. | Pozdní vazba. |
Příklad | Přetížené volání funkce, přetížené operátory. | Virtuální funkce v C ++, přepsané metody v javě. |
Definice statické vazby
Když kompilátor během kompilace potvrdí všechny informace potřebné k vyvolání funkce nebo všech hodnot proměnných, nazývá se „statická vazba“. Protože všechny požadované informace jsou známy před během programu, zvyšuje účinnost programu a také zvyšuje rychlost provádění programu.
Statická vazba dělá program velmi efektivním, ale snižuje flexibilitu programu, protože „hodnoty proměnné“ a „volání funkce“ jsou v programu předdefinovány. Statická vazba je implementována v programu v době kódování.
Přetížení funkce nebo operátora je příkladem polymorfismu kompilace, tj. Statické vazby.
Implementace statické vazby v C ++ s ukázkou přetížení
#zahrnout Zde se hodnota ukazatele mění, jak je program prováděn, a hodnota ukazatele rozhodne, která funkce třídy bude vyvolána. Tady jsou tedy informace poskytovány za běhu, trvá čas, než se spojí data, která zpomalují provádění. Došli jsme však k závěru, že když máme předchozí znalosti o hodnotách volání proměnné a funkce, aplikujeme statickou vazbu. Naopak, v dynamické vazbě poskytujeme všechny informace v době provedení.
Závěr: