C++ é uma linguagem compilada
Para executar os programas escritos, o código fonte precisa passar por duas etapas de processamento. O código que você escreve é apenas um texto com caracteres, que o computador não consegue interpretar. O compilador converte esses símbolos textuais em comandos que a CPU entende, ou seja, linguagem de máquina — a única sequência de instruções que a CPU executa linha por linha.
- Compilação: O compilador lê os arquivos fonte e gera arquivos objeto;
- Ligação: O ligador agrupa vários arquivos objeto para criar um programa executável.
Um projeto C++ geralmente é composto por vários arquivos fonte. Segue o diagrama do fluxo de trabalho:

O arquivo executável gerado é vinculado a um hardware e sistema operacional específicos, não podendo ser usado diretamente entre plataformas diferentes (um programa para Mac não roda diretamente em um computador Windows).
A portabilidade do C++ que comumente citamos refere-se à portabilidade do código fonte: o mesmo conjunto de fontes pode ser compilado separadamente em vários sistemas e funcionar normalmente.
Ou seja, o arquivo EXE compilado no Windows não funcionará se copiado para o Mac. O correto é copiar o mesmo texto fonte (arquivos .cpp e .h) para o Mac e compilá-lo com o compilador C++ nativo do macOS para gerar um executável compatível.
Padrão ISO do C++
O padrão ISO C++ define dois conjuntos principais
- Recursos centrais da linguagem: capacidades nativas da própria linguagem, como tipos primitivos
char/int, laçosfor/while, etc. - Componentes da biblioteca padrão: conjunto de ferramentas oficial fornecido, contêineres como
vector/map, saída com<<, leitura de entrada comgetline()e outras operações de E/S.
Toda a biblioteca padrão é implementada em código C++ puro e embutida em todos os compiladores principais;