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 Samsung Galaxy Note 3 e Moto X

    Differenza tra Samsung Galaxy Note 3 e Moto X

    Differenza fondamentale: Samsung Galaxy Note 3 è l'ultimo smartphone Samsung Corporation. È stato presentato il 4 settembre 2013 all'IFA di Berlino con Galaxy Gear, un orologio intelligente che dovrebbe funzionare come dispositivo complementare per i telefoni Galaxy. Nel maggio 2013, Motorola - una società di Google ha annunciato il lancio del suo telefono di punta, la Moto X. I
  • confronti popolari: Differenza tra Nokia Lumia 1020 e Samsung Galaxy S4

    Differenza tra Nokia Lumia 1020 e Samsung Galaxy S4

    Differenza fondamentale: il Lumia 1020 è il nuovo telefono di punta di Nokia. È dotato di una fotocamera da 41 MP e funziona su Windows Mobile 8. Samsung Galaxy S4 è il telefono di punta della Samsung Corporation. Il 23 luglio 2013, Nokia ha annunciato il lancio del suo nuovo telefono di punta, il Lumia 1020. I
  • confronti popolari: Differenza tra insegnamento e indottrinamento

    Differenza tra insegnamento e indottrinamento

    Differenza chiave: l' insegnamento riguarda la comunicazione di informazioni, idee o competenze che possono essere messe in discussione o discusse ei fatti insegnati nell'insegnamento sono supportati da prove, mentre l'indottrinamento riguarda la comunicazione di credenze che non sono supportate da alcuna prova e dal ricevente dovrebbe accettarlo nel modo in cui è stato insegnato senza discussioni o domande.
  • confronti popolari: Differenza tra Ltd e LLC

    Differenza tra Ltd e LLC

    Differenza fondamentale: sia la società LLC che la società Ltd sono condivise e sono trattate privatamente e trattate privatamente. In una società a responsabilità limitata, la responsabilità dei membri o degli abbonati della società è limitata a ciò che hanno investito o garantito alla società. Conside
  • confronti popolari: Differenza tra Unione e Unione Tutti

    Differenza tra Unione e Unione Tutti

    Differenza fondamentale: unione e unione sono tutti comandi utilizzati in SQL per integrare i valori di due tabelle. Un'evidente differenza tra i due è che l'Unione restituisce un insieme distinto di valori, mentre l'Unione restituisce tutti i valori interessati, anche se sono duplicati.
  • confronti popolari: Differenza tra paracadutismo e paracadutismo

    Differenza tra paracadutismo e paracadutismo

    Differenza fondamentale: le attrezzature utilizzate per il parapendio e il paracadutismo sono le stesse, ma sono utilizzate in diverse forme. Il paracadutismo consiste nel saltare, con un paracadute, da un aereo, mentre il parapendio è praticato usando un aereo senza motore. Entrambi, paracadutismo e paracadutismo sono sport estremamente diversi.
  • confronti popolari: Differenza tra colore e colore

    Differenza tra colore e colore

    Differenza chiave: colore e colore definiscono la stessa cosa. Non c'è differenza tra i due. Il colore è usato nell'inglese britannico, mentre il colore è usato nell'inglese americano. Si riferiscono all'aspetto delle cose che derivano dal modo in cui riflettono la luce. Alcuni dei colori / colori includono rosso, arancione, blu, rosa e bianco. C
  • confronti popolari: Differenza tra Punjabi e Gujarati

    Differenza tra Punjabi e Gujarati

    Differenza fondamentale: il Punjab e il Gujarat sono due regioni diverse all'interno del subcontinente indiano. Punjabi si riferisce alla lingua parlata dagli abitanti della regione del Punjab, così come gli abitanti della regione. Punjabi si riferisce anche al cibo etnico della regione, alla cultura e alle pratiche popolari della regione.
  • confronti popolari: Differenza tra ospedale e clinica

    Differenza tra ospedale e clinica

    Differenza fondamentale: un ospedale può essere un edificio del settore pubblico o privato in cui i pazienti sono ammessi al trattamento. D'altra parte, una clinica è un centro di assistenza sanitaria o è un luogo in cui un medico analizza i pazienti, prescrive farmaci e fornisce le istruzioni su come utilizzare il farmaco. O

Scelta Del Redattore

Differenza tra codice IFSC e codice filiale

Differenza fondamentale: nel contesto del sistema bancario indiano, entrambi si riferiscono a codici univoci. IFSC sta per Indian Financial System Code. Il codice IFSC è composto da undici caratteri e viene utilizzato per identificare la banca e il ramo della banca. Un codice filiale è un numero che funge da codice identificativo per il ramo bancario.