As linguagens C e C++: qual a diferença entre elas?

Larissa Gabriela
Larissa Gabriela

Compartilhe

Um óculos na frente de um monitor divididos em dois programas de programação

As linguagens C e C++: qual a diferença entre elas?

Quando mergulhamos no mundo da programação somos apresentados a diversas linguagens. É muito comum termos contato com o C ou o C++ e junto pode surgir o questionamento: Qual a diferença entre elas?

A linguagem de programação C é descrita como a linguagem mãe. Isso porque diversas outras linguagens utilizadas hoje surgiram utilizando C como base, PHP, Java, C# e o C++.

Ela foi criada em 1972, Dennis Ritchie, com um dos objetivos de criar sistemas operacionais. É por isso que os sistemas baseados no Unix utilizam essa linguagem como a principal. Um exemplo de código em C é:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    printf("Olá Mundo!\n");
    return 0;
}

O C++ foi desenvolvido cerca de 8 anos depois, em 1980, por Bjarne Stroustrup. Nessa época ainda era chamado de "C with Classes". Em 1982 ele passou a ser o C++ como conhecemos. Um “Olá mundo” ficaria da seguinte forma:

#include <iostream>

int main()
{
    std::cout << "Olá, Mundo!" << std::endl;
}

Entretanto, para entendermos bem como se diferenciam, precisamos saber o que é Programação Orientada a Objetos.

Programação orientada a objetos (POO)

Esse conceito é bastante extenso e por isso recomendo fortemente a leitura desse artigo para quem deseja entender detalhes de como funciona a POO.

A Programação orientada a objetos é um paradigma de desenvolvimento bastante utilizado atualmente. Diversas linguagens, como Java e Python, suportam essa aplicação.

Dois paradigmas de desenvolvimento bastante conhecidos são o procedural e o multiparadigma.

Na Programação com o paradigma procedural, também chamada programação estruturada, contamos com três tipos básicos de estrutura: sequências, condições e repetições.

Já na Programação orientada a objetos dois novos conceitos são utilizados: classes e objetos. Esse tipo de programação faz tudo o que a programação estruturada faz. Entretanto aproxima o manuseio de estruturas de um programa ao manuseio de coisas do mundo real.

Representação do que seria classe e objeto comparando com coisas do mundo real

Mas, afinal, qual a diferença entre o C e o C++?

A diferença entre essas linguagens envolve a extensão, a sintaxe, as bibliotecas, seus objetivos e os paradigmas. Mas essa última diferença é a principal.

Enquanto o paradigma do C é procedural, o C++ é o multi-paradigma, onde podemos utilizar os mesmos recursos que o C, mas também temos a possibilidade de implementar a orientação a objetos. Abaixo podemos ver trechos de códigos para os dois tipos de paradigmas:

  • Paradigma procedural:
#include <stdio.h>

int main() {
    int result;
    int num = 2;
    for(int mult = 1; mult <= 10; mult++){        
        result = num * mult;
        printf("\n%d x %d = %d\n", num, mult, result);
    }
}
  • Multi-paradigma:
#include <iostream.h>

class veiculo {

    private:
    char* nome;
    int peso;
    int potencia;

    public:
    veiculo(char* n,int p,int h);
    void altera_potencia(int en);
    int retorna_hp(void);
    void altera_peso(int en);
    int retorna_peso(void);

};

Então, por que ainda utilizar o C?

É comum, depois de entendermos a diferença entre as duas linguagens, pensarmos que o C não será mais utilizado e o C++ irá substituí-lo. Mas isso não é verdade. O C ainda recebe atualizações e é utilizado em diversas aplicações, como sistemas operacionais, jogos e sistemas de automação.

Isso se deve a diversos fatores, entre eles, poder ser compilado em praticamente qualquer arquitetura, tendo uma Interface Binária do Aplicativo estável para esses ambientes.

Conclusão

Vimos que ambas as linguagens são importantes e ainda utilizadas. As aplicações são diversas e cada uma delas costuma ter uma finalidade diferente.

Caso queira entender ainda mais sobre essas poderosas linguagens leia também:

Larissa Gabriela
Larissa Gabriela

Estudante de Física Médica e técnica em telecomunicações. Me aventuro estudando C++, C, Python e C#. Gosto de microcontrolares também :)

Veja outros artigos sobre Programação