Diferença chave: C e C ++ são duas linguagens de programação de computador diferentes. C ++ foi desenvolvido a partir da linguagem de programação C; no entanto, eles são bastante diferentes na natureza. A diferença mais óbvia é que C é uma linguagem orientada a procedimentos, enquanto que C ++ suporta programação procedural e orientada a objetos, portanto é freqüentemente chamada de linguagem híbrida.
C é uma das mais antigas linguagens de programação usadas atualmente e é uma das linguagens de programação mais utilizadas. Ele tem sido constantemente usado em aplicativos que já haviam sido codificados em linguagem assembly. Isso inclui o sistema operacional do computador UNIX. C também influenciou direta ou indiretamente muitas das linguagens de programação posteriores, como C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python e shell C do Unix. Apesar de todas essas novas linguagens, C ainda continua sendo uma linguagem de programação popular.
Originalmente, o C ++ começou como um aprimoramento para o C. Ele foi projetado para ser compatível com o Source-and-link do C. No entanto, ele incluiu classes, funções virtuais, sobrecarga do operador, herança múltipla, modelos, tratamento de exceções, etc. o suficiente para ser considerado uma linguagem de programação por si só. Foi originalmente ratificado em 1998 como ISO / IEC 14882: 1998 linguagem de programação certificada. Hoje, o C ++ agora é comumente usado para design de hardware.
C é uma linguagem de programação de uso geral que usa ponto e vírgula (;) como um terminador de instrução, bem como chaves ({}) para agrupar blocos de instruções. Possui instalações para programação estruturada e seu design fornece construções que podem ser mapeadas de maneira eficiente para as instruções típicas da máquina. Ele também permite escopo e recursão de variável lexical e possui um sistema de tipo estático, o que evita muitas operações não intencionais.
No entanto, em comparação com C ++, C tem inúmeras limitações. Como C não é orientado a objetos, ele não suporta conceitos OOPS. C não suporta sobrecarga de função e de operador. Não pode usar funções dentro de estruturas. Não suporta funções virtuais e variáveis de referência ou tratamento de exceções. Também não suporta variáveis de referência. Além disso, C também não encapsula ou protege os dados. Em comparação, o C ++ suporta todos esses recursos.
Os dois idiomas também diferem na maneira como as funções de memória de endereço, entrada-saída e programação de GUI. Por exemplo, C usa funções calloc (), malloc () e free () para alocar e desalocar memória, enquanto C ++ utiliza new e delete. C usa scanf () e printf () para entrada e saída, enquanto o C ++ usa os operadores cin >> e cout <<. C suporta a ferramenta GTK para programação GUI, enquanto o C ++ suporta ferramentas Qt para programação GUI. Outra diferença é que C requer que se declare todas as variáveis no topo do programa, enquanto em C ++, as variáveis podem ser declaradas em qualquer parte do programa.
Além disso, o C ++ é geralmente considerado mais fácil de aprender, já que é mais amigável do que C. O C ++ também possui inúmeras funções adicionais que tornam a codificação mais fácil, especialmente para alguém que é novo no framework C. No entanto, muitos afirmam que isso realmente importa. As duas línguas diferem tanto, que podem ser de fato duas línguas diferentes independentes umas das outras. Uma coisa a ter em mente é que o C é muito mais estruturado que o C ++, enquanto o C ++ foi projetado para ser mais expressivo e abstrato que o C.
Comparação entre C e C ++:
C | C ++ | |
Fundado | Desenvolvido por Dennis Ritchie na AT & T Bell Labs entre 1969 e 1973. | Desenvolvido por Bjarne Stroustrup no Bell Labs a partir de 1979. |
Código fonte | Código-fonte do programa de formato livre | Originalmente desenvolvido a partir da linguagem de programação C |
Língua | Linguagem Orientada a Procedimentos | Suporta paradigmas de programação orientada a objetos e procedimentos; portanto, é frequentemente chamado de linguagem híbrida. |
Abordagem | Segue a abordagem de cima para baixo. | Segue a abordagem de baixo para cima. |
Relação | C é um subconjunto de C ++. Não é possível executar o código C ++. | C ++ é um superconjunto de C. C ++ pode executar a maior parte do código C enquanto C não pode executar o código C ++. |
Dirigir | Linguagem orientada por funções | Linguagem orientada a objetos |
Foco | Concentra-se no método ou processo, em vez de dados. | Concentra-se em dados, em vez de método ou procedimento. |
Blocos de construção | Funções | Objetos |
Palavras-chave | Contém 32 palavras-chave | Contém 52 Palavras-chave |
OOPS Conceitos | Como a linguagem 'C' é uma linguagem orientada a procedimentos, ela não suporta conceitos OOPS como classe, objeto, herança, polimorfismo, ocultação de dados, etc. | Como uma linguagem orientada a objetos, o C ++ suporta classes, objetos, ocultação de dados, polimorfismo, herança, abstração, etc. |
Funções |
|
|
Funções de memória | Usa funções calloc (), malloc () e free () para alocar e desalocar memória. | Usa operadores novos e deletados para o mesmo propósito. |
Encapsulamento | Não suporta. Dados e funções são entidades separadas e livres. | Suporta encapsulamento. Dados e funções são encapsulados juntos na forma de um objeto. A classe de objetos fornece um esquema da estrutura do objeto. |
Esconder informação | C não suporta ocultação de informações. Aqui, os dados são entidades livres e podem ser manipulados por código externo. | O encapsulamento oculta os dados para garantir que as estruturas de dados e os operadores sejam usados como pretendido. |
Dados | Suporta tipos de dados integrados e primitivos. Os dados não são protegidos devido a não orientados a objetos | Suporta tipos de dados internos e definidos pelo usuário. Dados são protegidos (ocultos) em C ++ |
Nível | Linguagem de baixo nível | Linguagem de nível médio |
Entrada-saída | A linguagem 'C' usa scanf () e printf () para entrada e saída. | A linguagem 'C ++' usa cin >> e cout << operadores para entrada e saída. |
Declaração de Variáveis | C requer um para declarar todas as variáveis no topo do programa. | Em C ++, as variáveis podem ser declaradas em qualquer lugar do programa antes de serem usadas. |
Declaração Múltipla | Declaração múltipla de variáveis globais é permitida. | Declaração múltipla de variáveis globais não é permitida. |
Mapeamento | O mapeamento entre dados e funções é difícil e complicado. | O mapeamento entre dados e funções pode ser usado usando "Objetos" |
Programação GUI | C suporta ferramenta GTK para programação GUI | C ++ suporta ferramentas Qt para programação GUI |
Herança | A herança não é possível em C | A herança é possível em C ++ |
Extensão de arquivo | Tem extensão de arquivo .c | Tem extensão de arquivo .cpp |
Arquivo de cabeçalho padrão | O arquivo de cabeçalho padrão usado na linguagem C é stdio.h | O arquivo de cabeçalho padrão usado no C ++ é iosteam.h |
Alguns exemplos de diferença entre C e C ++:
Exemplos | C | C ++ |
Declaração variável | Apenas no topo: int i; para (i = 10; i <10; i ++) | Em qualquer lugar no programa: para (int i = 10; i <10; i ++) |
Alocação de memória | Malloc: int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Novo: int * x = novo int; int * x_array = new int [10]; |
Liberando Memória | Livre: livre (x); free (x_array); | Excluir: delete x; delete [] x_array; |