Menu

O que é C++? A linguagem, sua velocidade e onde ela roda

O que C++ realmente é, por que ela compila direto para código de máquina nativo e os tipos de software de alto desempenho que são construídos com ela.

Esta página tem editores executáveis - edite, execute e veja a saída na hora.

C++ em uma frase

C++ é uma linguagem de programação de tipagem estática e compilada que transforma o seu código-fonte diretamente em código de máquina nativo. Essa única escolha de design - sem interpretador, sem máquina virtual entre o seu programa e a CPU - é a razão pela qual C++ é uma das linguagens mais rápidas que você pode escrever, e por que ela alimenta o software que simplesmente não pode ser lento.

Aqui está o obrigatório primeiro programa. Execute-o aqui mesmo:

Há mais estrutura aqui do que em uma linguagem de script, e isso é proposital - C++ dá a você controle preciso em troca de ser explícito. Vamos detalhar cada parte disso ao longo das próximas páginas.

Por que C++ é rápida

A maioria das linguagens de script executa o seu código por meio de um interpretador ou de uma máquina virtual que lê e executa instruções em tempo de execução. C++ pula tudo isso:

  1. Um compilador (como g++ ou clang++) lê o seu código-fonte .cpp e o traduz em instruções de máquina para um processador e um sistema operacional específicos.
  2. O resultado é um executável independente que a CPU roda diretamente - nada fica entre o seu código e o hardware.

Como não há nenhuma tradução acontecendo enquanto o programa roda, os programas em C++ iniciam instantaneamente e rodam na velocidade máxima do processador. Você também ganha controle refinado sobre memória e hardware que linguagens de mais alto nível escondem de você de propósito.

A contrapartida: esse código de máquina é construído para uma única plataforma. Um executável compilado no Windows não vai rodar em um Mac - você recompila o código-fonte para cada destino. (Compare isso com Java, que compila para bytecode portável que roda em qualquer JVM.)

Tipagem estática e multiparadigma

Duas propriedades moldam como o código C++ se parece e se comporta.

Tipagem estática significa que toda variável tem um tipo conhecido em tempo de compilação, e o compilador verifica os seus tipos antes de o programa sequer rodar:

count é um int por toda a sua vida; tentar armazenar "hello" nele não compilaria. Isso captura toda uma classe de erros cedo, ao custo de digitar mais no começo.

Multiparadigma significa que C++ não força um único estilo sobre você. Você pode escrever código procedural simples, organizar a lógica em classes (orientado a objetos) ou usar templates para código genérico e reutilizável. A maioria dos programas reais mistura os três. Essa flexibilidade é poderosa, mas também significa que C++ tem uma grande área de superfície para aprender - vamos abordá-la um conceito de cada vez.

Para que serve C++

C++ aparece sempre que desempenho e controle são inegociáveis:

  • Motores de jogos - Unreal Engine, o núcleo da Unity e a maior parte do código de jogos AAA.
  • Software de sistemas - sistemas operacionais, drivers de dispositivos e navegadores como Chrome e Firefox.
  • Serviços de alto desempenho - bancos de dados, sistemas de trading e infraestrutura de busca onde microssegundos contam.
  • Embarcados e hardware - firmware para carros, drones, dispositivos médicos e IoT.

Se um software precisa ser rápido, caber em pouca memória ou conversar diretamente com o hardware, há uma boa chance de ele ser escrito em C++.

C++ não é C (mas começou ali)

C++ surgiu de C nos anos 1980 como "C com classes", e continua sendo, na maior parte, um superconjunto - muito código C válido compila como C++. Mas a linguagem cresceu enormemente desde então.

C++ adiciona programação orientada a objetos, templates para código genérico, referências, exceções e uma rica biblioteca padrão cheia de ferramentas prontas para uso. Este trecho usa uma delas, vector - um array redimensionável que gerencia a própria memória, algo que você teria que construir à mão em C:

O C++ moderno (os padrões C++11, C++17 e C++20) se apoia fortemente em ferramentas como essas para tornar a linguagem mais segura e expressiva do que suas raízes em C. Um erro comum de iniciante é escrever C++ no estilo de C - memória manual, arrays crus por toda parte - quando a biblioteca padrão já resolve o problema para você. Vamos favorecer o estilo moderno ao longo destes documentos.

Próximo: Instalando C++

Para escrever e rodar C++ na sua própria máquina você precisa de um compilador - normalmente g++ (parte do GCC), clang++ ou o conjunto de ferramentas MSVC no Windows. A próxima página orienta você na instalação de um e na confirmação de que ele funciona a partir do seu terminal.

Perguntas frequentes

Para que serve C++?

C++ alimenta software onde velocidade e controle importam: motores de jogos (Unreal, o núcleo da Unity), sistemas operacionais, navegadores (Chrome, Firefox), bancos de dados, sistemas de trading e dispositivos embarcados. Sua força está em rodar perto do hardware sem abrir mão de recursos de alto nível como classes, templates e a biblioteca padrão.

C++ é compilada ou interpretada?

C++ é compilada. Um compilador como g++ ou clang++ traduz o seu código-fonte diretamente para código de máquina nativo para uma CPU e um sistema operacional específicos, produzindo um executável independente. Não há interpretador nem máquina virtual entre o seu programa e o processador, e é por isso que C++ é tão rápida.

Qual é a diferença entre C e C++?

C++ começou como "C com classes" e é, na maior parte, um superconjunto de C, então a maioria do código C compila como C++. As grandes adições são a programação orientada a objetos (classes e herança), os templates, a biblioteca padrão (contêineres como vector e map), as referências, as exceções e muitos recursos de segurança e conveniência que C não tem.

Coddy programming languages illustration

Aprenda a programar com o Coddy

COMEÇAR