So che cosa ignorare è in C++. Ma c'è lo che sovrascrive lo? Se è così, cosa significa?Sovrascrittura C++ ... sovrascrittura?
Grazie.
So che cosa ignorare è in C++. Ma c'è lo che sovrascrive lo? Se è così, cosa significa?Sovrascrittura C++ ... sovrascrittura?
Grazie.
Nella terminologia C++, è necessario imperativo (relative ai metodi virtuali in una gerarchia di classi) e sovraccarico (relative a una funzione con lo stesso nome ma prendendo diversi parametri). È inoltre necessario nascondere i nomi (tramite dichiarazione esplicita con lo stesso nome in un'area dichiarativa o ambito nidificato).
Il C++ standard non usa il termine "sovrascrivere" tranne nella sua forma inglese canonica (cioè, per sostituire un valore con un nuovo valore, come nell'assegnazione x = 10
che sovrascrive il valore precedente di x
).
È possibile sovrascrivere le variabili, ad es. int a = 0; a = 42;
e file (apri un file esistente per scrivere - se hai il permesso sovrascriverà il contenuto del file esistente) se è questo che intendi. Questo ha poco in relazione all'override. Stavi forse pensando di sovraccaricare?
La solita distinzione con cui ho familiarità è di sovraccarico e sovraccarico. Le funzioni virtuali sono sovrascritte. Le funzioni sono sovraccariche quando c'è una versione con lo stesso nome ma firma diversa (questo esiste in molte lingue). In C++ puoi anche sovraccaricare gli operatori.
AFAIK, la sovrascrittura è un concetto non correlato (sovrascrive una variabile, un file, un buffer, ecc.) E non è specifico per C++ o anche per i linguaggi OOP.
Override è "la cosa normale" in OOP: una classe derivata fornisce un'implementazione diversa (cioè più specializzata) per qualcosa, ignorando la classe di base, ad es. apple::foo()
sostituisce fruit::foo()
se la mela è una classe derivata dalla frutta. (da non confondere con lo sovraccarico utilizzando diverse firme dei parametri, che porta a funzioni completamente distinte).
Sovrascrivi So di sostituire completamente con un'altra definizione. Non su un livello specifico ma in generale per il resto del programma. Questo javascript a volte viene utilizzato, se un grande quadro ha alcuni problemi particolari, e non si vuole strappare il grande file a parte:
<script type="text/javascript"
src="some super big framework, often in one big file">
<script type="text/javascript">
Ext.ux.window.createWin = function() {
// completely OVERWRITE the implementation
(often to 'hotfix' a particular bug)
}
</script>
Tuttavia: Non so di qualsiasi cosa in C++, come una ridefinizione simultanea di una funzione porterebbe sempre ad errori già al momento della compilazione. Al massimo, posso immaginare puntatori di funzione di piegamento o (ri) definire ganci di richiamo.
Non ho mai sentito il termine "sovrascrittura" usato per qualcosa in relazione al C++. –
L'origine del termine "sovrascrittura" potrebbe essere una pessima traduzione dal tedesco all'inglese. Il termine tecnico tedesco per "scavalcare" è "überschreiben" che letteralmente (!) Traduce in inglese come "sovrascrittura". Quindi potresti parlare tedesco? – nabulke
@nabulke, ho ZD (Zertifikat Deutsh), quindi, io parlo tedesco. – Simplicity