Differenza tra C e C ++ con esempi | Linguaggi di programmazione

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 e C ++ sono due diversi linguaggi di programmazione per computer. C è stato originariamente sviluppato da Dennis Ritchie presso AT & T Bell Labs tra il 1969 e il 1973. Il C ++ è un altro linguaggio di programmazione generico. È stato sviluppato dal linguaggio di programmazione C originale. E 'stato sviluppato da Bjarne Stroustrup presso i Bell Labs a partire dal 1979. Il C ++ era originariamente chiamato C con Classes, poiché era basato su C. E' stato ribattezzato C ++ nel 1983.

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à.

Inoltre, C non supporta la funzionalità NAMESPACE, mentre C ++ lo fa. Uno spazio dei nomi è una regione definitiva che consente di raggruppare gli identificatori (i nomi di tipi, funzioni, variabili, ecc.). Gli spazi dei nomi possono quindi essere utilizzati per organizzare il codice in gruppi logici e per evitare conflitti di nomi. Ciò è particolarmente utile quando la base di codice include più librerie, che idealmente rende il codice incline al nome delle collisioni.

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

  • Non supporta la funzione e il sovraccarico dell'operatore.
  • Non è possibile utilizzare le funzioni all'interno delle strutture
  • Non supporta funzioni virtuali e variabili di riferimento
  • Non supporta la gestione delle eccezioni
  • non supporta le variabili di riferimento
  • non ha la funzione namespace
  • può chiamare la funzione main () attraverso altre funzioni
  • Supporta il sovraccarico della funzione e dell'operatore.
  • Può usare funzioni all'interno di strutture
  • Supporta funzioni virtuali e variabili di riferimento.
  • Supporta la gestione delle eccezioni usando try e catch block. Le eccezioni sono utilizzate per errori "hard" che rendono il codice errato.
  • supporta le variabili di riferimento
  • utilizza la funzione NAMESPACE che evita le collisioni di nomi.
  • impossibile chiamare la funzione main () tramite altre 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;

Raccomandato

Articoli Correlati

  • differenza tra: Differenza tra fantasmi e demoni

    Differenza tra fantasmi e demoni

    Differenza chiave: i fantasmi sono le anime e gli spiriti degli umani deceduti. I demoni sono creduti agli esseri soprannaturali che sono spesso malevoli. Le persone spesso si confondono tra fantasmi e demoni e credono che qualsiasi attività soprannaturale abbia a che fare con i demoni che interferiscono con le loro vite.
  • differenza tra: Differenza tra Sony Xperia J e Nokia Lumia 520

    Differenza tra Sony Xperia J e Nokia Lumia 520

    Differenza fondamentale: Xperia J è stato annunciato nell'ottobre 2012 come variante più economica dell'Xperia T, il cui telefono presenta un design simile al T. L'Xperia J è dotato di un touchscreen TFT resistente ai graffi da 4 pollici che offre una densità di pixel 245. Nokia Lumia 520 è uno smartphone con touchscreen capacitivo IPS da 4 pollici che offre un display da 480x800 pixel, che offre circa 233 ppi. Il
  • differenza tra: Differenza tra Alcatel One Touch Idol Ultra e HTC First

    Differenza tra Alcatel One Touch Idol Ultra e HTC First

    Differenza fondamentale: Alcatel One Touch Idol Ultra è dotato di un touchscreen capacitivo AMOLED HD da 4, 65 pollici con una risoluzione di 720 x 1280 pixel. Il telefono è alimentato da un processore Dual-core da 1, 2 GHz su un MediaTek MTK 6577 e 1 GB di RAM. Il telefono ha una larghezza di 6, 45 mm, che ha portato l'azienda a pubblicizzarlo come lo smartphone più sottile sul mercato. H
  • differenza tra: Differenza tra Nokia Lumia 820 e Samsung Galaxy S3

    Differenza tra Nokia Lumia 820 e Samsung Galaxy S3

    Differenza fondamentale: uno dei primi smartphone con il marchio è il Nokia Lumia 820. Il Nokia Lumia 820 è stato il primo dei primi telefoni sviluppati su Windows Phone 8. È stato lanciato a novembre 2012, come alternativa leggermente più economica al Nokia 920. Il Samsung Galaxy S3 è uno smartphone multi-touch in formato ardesia lanciato a maggio 2012. È s
  • differenza tra: Differenza tra Microsoft Surface RT e Dell Latitude 10 Windows Tablet

    Differenza tra Microsoft Surface RT e Dell Latitude 10 Windows Tablet

    Differenza chiave: Microsoft Surface RT è un tablet dotato di touchscreen capacitivo TFT HD da 10, 6 pollici con una densità di circa 148 ppi. Lo schermo offre il rapporto di aspetto 16: 9 vero. Tuttavia, il sistema operativo non è compatibile con i vecchi programmi per PC Windows. Il tablet Latitude 10 è abbastanza liscio e leggero a 658 grammi. I
  • differenza tra: Differenza tra BMP e PNG

    Differenza tra BMP e PNG

    Differenza fondamentale: l'immagine bitmap di solito si riferisce a un'immagine non compressa. In questo formato, le immagini sono rese pixel per pixel che vengono assemblate per formare un'immagine. PNG è l'acronimo di Portable Network Graphics. È stato creato come sostituto migliorato e non brevettato per Graphics Interchange Format (GIF).
  • differenza tra: Differenza tra Celsius e Kelvin

    Differenza tra Celsius e Kelvin

    Differenza chiave: Celsius, noto anche come centigrado, è un sistema di unità comunemente usato che viene utilizzato per misurare la temperatura. La scala Kelvin fu proposta da William Thomson, 1 ° barone Kelvin nel 1848. Propose di sviluppare una scala di temperatura termodinamica assoluta, usando il suo punto base come zero assoluto. I
  • differenza tra: Differenza tra avena e frumento

    Differenza tra avena e frumento

    Differenza fondamentale: l' avena è diventata un popolare cereale per la colazione grazie alle sue numerose proprietà salutari. Con lo spostamento verso una vita sana, quasi tutti hanno sentito parlare dell'avena o hanno incorporato l'avena nella loro dieta. Avena sativa o avena è una specie di cereale che viene coltivata per il suo seme, noto anche con lo stesso nome. I
  • differenza tra: Differenza tra Apple Watch e Pebble Steel

    Differenza tra Apple Watch e Pebble Steel

    Differenza chiave: Apple Watch è lo smartwatch tanto atteso da Apple. Pebble Steel è un orologio per smartphone creato da Pebble Technology e l'unico orologio che supporta sia iOS che Android. Apple Watch è lo smartwatch tanto atteso dai produttori di iPhone. Come previsto, supporta solo gli iPhone, anche i modelli iPhone 5 e versioni successive. P

Scelta Del Redattore

Differenza tra disco e disco

Differenza chiave: Un "Disco" si riferisce a supporti ottici, come CD, CD-R, DVD-R, DVD-RW, ecc. Questi sono un tipo di dispositivi di archiviazione rimovibili che possono essere utilizzati per memorizzare file, brani, ecc. Un 'disco' è un dispositivo di archiviazione magnetico, simile ai dischi floppy, il disco sul disco rigido del computer e un disco rigido esterno.