Differenza tra rilegatura statica e dinamica
Contenuto
- Tabella di comparazione:
- Definizioni di rilegatura statica
- Implementazione dell'associazione statica in C ++ con un esempio di sovraccarico
- Conclusione:
L'associazione vincolante di una "definizione di funzione" a una "chiamata di funzione" o un'associazione di un "valore" a una "variabile", è chiamata "associazione". Durante la compilazione, ad ogni "definizione di funzione" viene assegnato un indirizzo di memoria; non appena viene effettuata la chiamata di funzione, il controllo dell'esecuzione del programma passa a quell'indirizzo di memoria e ottiene il codice della funzione memorizzato in quella posizione, questo è il Binding di "chiamata di funzione" a "definizione di funzione". Il legame può essere classificato come "legame statico" e "legame dinamico".
Se è già noto prima del runtime, quale funzione verrà invocata o quale valore viene assegnato a una variabile, allora si tratta di un "binding statico". se viene a conoscenza in fase di esecuzione, allora si chiama "associazione dinamica".
- Tabella di comparazione
- Definizione
- Differenze chiave
- Conclusione
Tabella di comparazione:
Base per il confronto | Rilegatura statica | Rilegatura dinamica |
---|---|---|
Evento Evento | Gli eventi che si verificano in fase di compilazione sono "Legatura statica". | Gli eventi che si verificano in fase di esecuzione sono "Binding dinamico". |
Informazione | Tutte le informazioni necessarie per chiamare una funzione sono note al momento della compilazione. | Tutte le informazioni necessarie per chiamare una funzione vengono a conoscenza in fase di esecuzione. |
Vantaggio | Efficienza. | Flessibilità. |
Tempo | Esecuzione veloce. | Esecuzione lenta. |
Nome alternativo | Legatura anticipata. | Rilegatura tardiva. |
Esempio | Chiamata di funzione sovraccaricata, operatori sovraccarichi. | Funzione virtuale in C ++, metodi ignorati in Java. |
Definizioni di rilegatura statica
Quando il compilatore riconosce tutte le informazioni necessarie per chiamare una funzione o tutti i valori delle variabili durante il tempo di compilazione, viene chiamato "associazione statica“. Poiché tutte le informazioni richieste sono note prima del runtime, aumenta l'efficienza del programma e migliora anche la velocità di esecuzione di un programma.
Il Binding statico rende un programma molto efficiente, ma diminuisce la flessibilità del programma, poiché "valori della variabile" e "funzione chiamata" sono predefiniti nel programma. Il binding statico è implementato in un programma al momento della codifica.
Il sovraccarico di una funzione o di un operatore sono l'esempio del polimorfismo in fase di compilazione, ovvero il legame statico.
Implementazione dell'associazione statica in C ++ con un esempio di sovraccarico
#includere Qui il valore del puntatore cambia quando il programma è in esecuzione e il valore del puntatore decide quale funzione della classe verrà invocata. Quindi qui, le informazioni sono fornite in fase di esecuzione, ci vuole tempo per associare i dati che rallentano l'esecuzione. Tuttavia, concludiamo che quando abbiamo una conoscenza preliminare dei valori della variabile e della chiamata di funzione, applichiamo l'associazione statica. Al contrario, in Binding dinamico, forniamo tutte le informazioni al momento dell'esecuzione.
Conclusione: