Differenza fondamentale: C e C ++ sono due diversi linguaggi di programmazione per computer. C ++ è stato sviluppato dal linguaggio di programmazione C; tuttavia sono di natura abbastanza diversa. La differenza più ovvia è che C è un linguaggio orientato alla procedura, mentre il C ++ supporta sia la programmazione procedurale che quella orientata agli oggetti, quindi viene spesso chiamato un linguaggio ibrido.
C è uno dei più vecchi linguaggi di programmazione attualmente utilizzati ed è uno dei linguaggi di programmazione più diffusi. È stato costantemente utilizzato in applicazioni che avevano precedentemente codificato in linguaggio assembly. Ciò include il sistema operativo del computer UNIX. C ha anche influenzato direttamente o indirettamente molti dei linguaggi di programmazione successivi, come C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python e la shell C di Unix. Nonostante tutti questi nuovi linguaggi, C rimane ancora un linguaggio di programmazione popolare.
C ++ originariamente iniziato come un miglioramento di C. E 'stato progettato per essere compatibile source-and-link con C. Tuttavia, ha aggiunto classi, funzioni virtuali, overloading dell'operatore, ereditarietà multipla, modelli, gestione delle eccezioni, ecc. Alla fine, ha sviluppato abbastanza da essere considerato un linguaggio di programmazione a sé stante. È stato originariamente ratificato nel 1998 come linguaggio di programmazione certificato ISO / IEC 14882: 1998. Oggi, C ++ è ora comunemente usato per la progettazione hardware.
C è un linguaggio di programmazione generico che utilizza il punto e virgola (;) come terminatore di istruzioni, nonché parentesi graffe ({}) per il raggruppamento di blocchi di istruzioni. Dispone di strutture per la programmazione strutturata e il suo design fornisce costrutti in grado di mappare in modo efficiente le istruzioni tipiche della macchina. Permette inoltre la ricorsione e lo scope variabile lessicale e ha un sistema di tipo statico, che impedisce molte operazioni non volute.
Tuttavia, rispetto al C ++, C ha numerose limitazioni. Poiché C non è orientato agli oggetti, non supporta i concetti OOPS. C non supporta la funzione e il sovraccarico dell'operatore. Non può usare le funzioni all'interno delle strutture. Non supporta funzioni virtuali e variabili di riferimento o gestione delle eccezioni. Inoltre non supporta le variabili di riferimento. Inoltre, C non incapsula o protegge i dati. In confronto, C ++ supporta tutte queste funzionalità.
Le due lingue differiscono anche per le funzioni di memoria degli indirizzi, input-output e programmazione della GUI. Ad esempio, C usa le funzioni calloc (), malloc () e free () per allocare e de-allocare memoria, mentre C ++ utilizza new e delete. C usa scanf () e printf () per input e output, mentre C ++ usa cin >> e cout << operator. C supporta lo strumento GTK per la programmazione GUI, mentre C ++ supporta gli strumenti Qt per la programmazione GUI. Un'altra differenza è che C richiede uno per dichiarare tutte le variabili nella parte superiore del programma, mentre in C ++, le variabili possono essere dichiarate in qualsiasi punto del programma.
Inoltre, il C ++ è solitamente considerato più facile da imparare, in quanto più user friendly di C. C ++ ha anche numerose funzioni aggiuntive che rendono la codifica più semplice, specialmente per chi è nuovo nel framework C. Tuttavia, molti affermano che in realtà contano. Le due lingue differiscono così tanto, che possono infatti essere due lingue diverse indipendenti l'una dall'altra. Una cosa da tenere a mente è che C è molto più strutturato di C ++, mentre C ++ è stato progettato per essere più espressivo e astratto di C.
Confronto tra C e C ++:
C | C ++ | |
Fondato | Sviluppato da Dennis Ritchie presso AT & T Bell Labs tra il 1969 e il 1973. | Sviluppato da Bjarne Stroustrup presso i Bell Labs a partire dal 1979. |
Codice sorgente | Codice sorgente del programma in formato libero | Originariamente sviluppato dal linguaggio di programmazione C |
linguaggio | Linguaggio orientato alla procedura | Supporta paradigmi di programmazione sia procedurali che object oriented; quindi è spesso chiamato un linguaggio ibrido. |
Approccio | Segue l'approccio top-down. | Segue l'approccio dal basso verso l'alto. |
Relazione | C è un sottoinsieme di C ++. Non può eseguire codice C ++. | C ++ è un superset di C. C ++ può eseguire la maggior parte del codice C mentre C non può eseguire il codice C ++. |
Guidare | Linguaggio basato sulle funzioni | Linguaggio basato su oggetti |
Messa a fuoco | Si concentra sul metodo o sul processo piuttosto che sui dati. | Si concentra sui dati piuttosto che sul metodo o sulla procedura. |
Costruzioni | funzioni | Oggetti |
parole | Contiene 32 parole chiave | Contiene 52 parole chiave |
OOPS Concetti | Poiché il linguaggio "C" è linguaggio orientato alle procedure, non supporta i concetti OOPS come classe, oggetto, ereditarietà, polimorfismo, nascondimento dei dati, ecc. | Come linguaggio orientato agli oggetti, C ++ supporta classi, oggetti, nascondigli di dati, polimorfismo, ereditarietà, astrazione, ecc. |
funzioni |
|
|
Funzioni di memoria | Utilizza le funzioni calloc (), malloc () e free () per allocare e disallocare la memoria. | Utilizza gli operatori nuovi e cancella per lo stesso scopo. |
incapsulamento | Non supporta. Dati e funzioni sono entità separate e libere. | Supporta l'incapsulamento. Dati e funzioni sono incapsulati insieme nella forma di un oggetto. La classe di oggetti fornisce un modello della struttura dell'oggetto. |
Nascondere informazioni | C non supporta l'occultamento delle informazioni. Qui, i dati sono entità libere e possono essere manipolati da codice esterno. | L'incapsulamento nasconde i dati per garantire che le strutture dati e gli operatori siano utilizzati come previsto. |
Dati | Supporta tipi di dati incorporati e primitivi. I dati non sono protetti a causa di non orientato agli oggetti | Supporta sia i tipi di dati predefiniti che quelli definiti dall'utente. I dati sono protetti (nascosti) in C ++ |
Livello | Linguaggio di basso livello | Lingua di medio livello |
Input Output | La lingua 'C' usa scanf () e printf () per l'input e l'output. | Il linguaggio 'C ++' usa cin >> e cout << operatori per input e output. |
Dichiarazione di variabili | C richiede uno per dichiarare tutte le variabili nella parte superiore del programma. | In C ++, le variabili possono essere dichiarate in qualsiasi punto del programma prima dell'uso. |
Dichiarazione multipla | Sono ammesse dichiarazioni multiple di variabili globali. | Non sono consentite dichiarazioni multiple di variabili globali. |
Mappatura | La mappatura tra dati e funzioni è difficile e complicata. | La mappatura tra dati e funzioni può essere utilizzata usando "Oggetti" |
Programmazione GUI | C supporta lo strumento GTK per la programmazione GUI | C ++ supporta gli strumenti Qt per la programmazione GUI |
Eredità | L'ereditarietà non è possibile in C | L'ereditarietà è possibile in C ++ |
Estensione del file | Ha estensione file .c | Ha estensione file .cpp |
File di intestazione predefinito | Il file di intestazione predefinito utilizzato nel linguaggio C è stdio.h | Il file di intestazione predefinito utilizzato in C ++ è iosteam.h |
Alcuni esempi di differenza tra C e C ++:
Esempi | C | C ++ |
Dichiarazione variabile | Solo in alto: int i; for (i = 10; i <10; i ++) | Ovunque nel programma: for (int i = 10; i <10; i ++) |
Allocazione della memoria | malloc: int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Nuovo: int * x = new int; int * x_array = new int [10]; |
Rilasciando la memoria | Gratuito: libero (x); libero (x_array); | Elimina: cancella x; elimina [] x_array; |