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

  • confronti popolari: Differenza tra salsa e ballo da sala

    Differenza tra salsa e ballo da sala

    Differenza chiave: " Salsa" è una categoria di una danza ritmica cubana stilizzata con elementi di musica rock e soul. In questa coppia di ballo non abbracciare invece tenere una o entrambe le mani. D'altra parte, " Ballroom dancing" ha bisogno di una grande stanza in cui il numero di persone balla in modo formale.
  • confronti popolari: Differenza tra autore e scrittore

    Differenza tra autore e scrittore

    Differenza fondamentale: negli scritti letterari e creativi, un "autore" è colui che crea originariamente il proprio contenuto, mentre uno "scrittore" è colui che scrive qualsiasi tipo di contenuto interessato agli argomenti rilevanti a lui assegnati. In generale, le parole "autore" e "scrittore" sono sinonimi.
  • confronti popolari: Differenza tra bicarbonato di sodio e polvere di cottura

    Differenza tra bicarbonato di sodio e polvere di cottura

    Differenza fondamentale: il bicarbonato di sodio è un composto chimico utilizzato come agente lievitante nei prodotti da forno. Il lievito in polvere è generalmente solo bicarbonato mescolato con un acido. Il lievito in polvere è generalmente solo bicarbonato mescolato con un acido, solitamente una crema di tartaro e un agente essiccante, solitamente amido. I
  • confronti popolari: Differenza tra fonetica sintetica e fonetica analitica

    Differenza tra fonetica sintetica e fonetica analitica

    Differenza chiave: la fonetica è un metodo utilizzato per insegnare l'abilità della lettura. Descrive un'associazione tra lettere dell'alfabeto e suoni usati nelle nostre lingue parlate. La fonetica analitica è anche conosciuta come fonetica implicita. In questo approccio, viene eseguita principalmente l'analisi di un suono particolare all'interno di una parola o di una parola. L
  • confronti popolari: Differenza tra droghe e alcol

    Differenza tra droghe e alcol

    Differenza fondamentale: un "farmaco" è una sostanza che può avere un effetto medicinale, intossicante o di miglioramento delle prestazioni sul corpo di una persona. I farmaci possono essere utilizzati per vari scopi: medicinali, spirituali / religiosi, auto-miglioramento e ricreativo. In chimica, l'alcol è un composto organico in cui il gruppo idrossilico funzionale (-OH) è legato a un atomo di carbonio. L&
  • confronti popolari: Differenza tra Airbus e Boeing

    Differenza tra Airbus e Boeing

    Differenza principale: Airbus è una produzione di velivoli molto diffusa che è una consociata di EADS, una società aerospaziale europea. La società ha sede a Blagnac, in Francia. La Boeing Company è una multinazionale Aerospace Company and Defense Corporation che ha le sue radici negli Stati Uniti. Fu
  • confronti popolari: Differenza tra aereo e aereo

    Differenza tra aereo e aereo

    Differenza chiave: aereo e aereo sono gli stessi . Pertanto, non vi è alcuna differenza tra i due. Tuttavia, l'aereo è preferito in inglese americano e canadese, mentre l'aereo è preferito nell'inglese britannico. Alcune persone potrebbero pensare che potrebbe esserci una leggera differenza tra un aereo e un aeroplano. T
  • confronti popolari: Differenza tra Sonos e Bose

    Differenza tra Sonos e Bose

    Differenza fondamentale: Sonos è una società di elettronica di consumo di apparecchiature audio che consente lo streaming online di musica attraverso il proprio sistema musicale HiFi wireless. Bose è una società di elettronica di consumo specializzata in apparecchiature audio. Secondo Wikipedia, Bose Corporation è una società privata americana, con sede a Framingham, Massachusetts, specializzata in apparecchiature audio. È st
  • confronti popolari: Differenza tra SLR e CRR

    Differenza tra SLR e CRR

    Differenza chiave: SLR, abbreviazione, rapporto di liquidità statutaria, è il rapporto tra attività liquide rispetto alla domanda e passività temporanee. CRR, abbreviazione, Cash Reserve Ratio, anche noto come Requisito di Riserva è il rapporto minimo garantito dalla RBI. SLR e CRR sono entrambi termini bancari. Que

Scelta Del Redattore

Differenza tra seta e raso

Differenza fondamentale: la seta è una fibra proteica naturale. Viene raccolto dai bozzoli creati da alcune larve di insetti. La seta ha una consistenza morbida e liscia che non è scivolosa. Il raso, d'altra parte, non è una fibra. È una trama di tessuto. Il raso implica che il tessuto sia stato intrecciato in un particolare disegno che lascia un lato opaco del tessuto, mentre l'altro è lucido. Il