PopularJornada
Aprenda C++
Um curso de C++ online, gratuito e interativo. Você escreve C++ em toda lição — fundamentos, pointers, classes, templates — com dicas de IA quando o compilador reclama, e um certificado grátis quando terminar.
211,803+ codders inscritos
- Ideal para iniciantes
Ajuda de codificação com IA
Lições interativas e práticas
Narração em áudio em todas as lições
Questionários para testar seu conhecimento
Certificado grátis de conclusão
Programa
Seção 1
Fundamentos
Começar seçãoIniciarExpandirRecolherConstrua uma base sólida com conceitos essenciais e habilidades básicasIntrodução
4 lições325- 01C++Desafio
- 02Olá Mundo!DesafioQuiz
- 03ComentáriosQuiz
- 04Estrutura Básica do ProgramaDesafioQuiz
Variáveis Parte 1
6 lições846- 01Números InteirosDesafioMaestriaQuiz
- 02Números ReaisDesafioMaestriaQuiz
- 03StringDesafioQuiz
- 04BooleanDesafioQuiz
- 05CharDesafioQuiz
- 06ConstantesDesafioQuiz
Variáveis Parte 2
5 lições334- 01Declaração de TipoDesafioQuiz
- 02Convenções de NomenclaturaQuiz
- 03Recapitulação - Inicializar VariáveisDesafio
- 04Type Casting Parte 1DesafioQuiz
- 05Type Casting Parte 2Quiz
Operadores Parte 1
7 lições654- 01Operadores AritméticosDesafioQuiz
- 02Operador de MóduloDesafioQuiz
- 03Incremento/DecrementoDesafioQuiz
- 04Pós-incremento/DecrementoDesafioQuiz
- 05Atalhos AritméticosDesafioQuiz
- 06Operadores de ComparaçãoDesafioQuiz
- 07Comparação de StringsQuiz
Operadores Parte 2
4 lições423- 01Operadores Lógicos Parte 1DesafioQuiz
- 02Operadores Lógicos Parte 2DesafioQuiz
- 03Recapitulação - Lógica SimplesDesafio
- 04Operadores Lógicos Parte 3DesafioQuiz
Tomada de Decisão
6 lições637- 01Estrutura IfDesafioQuiz
- 02If - ElseDesafioQuiz
- 03Estrutura SwitchDesafioQuiz
- 04Operador CondicionalDesafioQuiz
- 05Recapitulação - If ElseDesafio
- 06If - Else AninhadoDesafioQuiz
Fundamentos de Entrada/Saída
5 lições524- 01Comando coutDesafioMaestriaQuiz
- 02Comando cinDesafioQuiz
- 03Entrada de StringQuiz
- 04Revisão - Até 120Desafio
- 05Revisão - Verdadeiro ou FalsoDesafio
Calculadora de Números
Projeto4 lições16- 01Mensagem de Boas-vindasDesafioQuiz
- 02Obtendo NúmerosProjeto
- 03Operações BásicasProjeto
- 04Saída FormatadaProjeto
Loops
9 lições760- 01Loop For Parte 1DesafioQuiz
- 02Loop WhileDesafioQuiz
- 03Loop Do WhileDesafioQuiz
- 04BreakDesafioQuiz
- 05ContinueDesafioQuiz
- 06Loop For Parte 2Quiz
- 07Loops AninhadosDesafioQuiz
- 08Loops InfinitosQuiz
- 09Recapitulação - Entrada DinâmicaDesafio
Funções
7 lições739- 01Declarar uma FunçãoDesafioQuiz
- 02ParâmetrosDesafioMaestriaQuiz
- 03Tipos de RetornoDesafioQuiz
- 04Sobrecarga de FunçõesQuiz
- 05Recapitulação - Função SigmaDesafio
- 06Recapitulação - Função de ValidaçãoDesafio
- 07Funções VoidDesafioQuiz
Fundamentos de Arrays
9 lições848- 01Declarando ArraysDesafioQuiz
- 02Acessando ElementosDesafioQuiz
- 03Modificando ElementosDesafioQuiz
- 04Recapitulação - Pretty Print de ArrayDesafio
- 05Arrays e FunçõesQuiz
- 06Recapitulação - Produto de ArrayDesafio
- 07Recapitulação - Array InvertidoDesafio
- 08For Loop AprimoradoDesafioQuiz
- 09Operações Comuns com ArraysDesafioQuiz
Strings
5 lições441- 01Strings estilo C - Parte 1DesafioQuiz
- 02Strings estilo C - Parte 2Quiz
- 03Operações com StringsDesafioQuiz
- 04Funções de String - Parte 1DesafioQuiz
- 05Funções de String - Parte 2DesafioQuiz
Desafios Finais
3 lições37- 01Padrão NuméricoDesafioQuiz
- 02Localizador de PadrõesDesafio
- 03Calculadora de Notas de AlunosDesafio
Seção 2
Lógica & Fluxo
Começar seçãoIniciarExpandirRecolherDesenvolva habilidades de resolução de problemas e crie programas dinâmicos e interativosPonteiros e Memória
8 lições757- 01O que é um Ponteiro?Quiz
- 02Operador de EndereçoDesafioQuiz
- 03Operador de DesreferenciaçãoDesafioQuiz
- 04Ponteiros NulosDesafioQuiz
- 05Ponteiros e ArraysDesafioQuiz
- 06Memória Dinâmica com 'new'DesafioQuiz
- 07Liberando Memória com 'delete'DesafioQuiz
- 08Recapitulação - Prática com PonteirosDesafio
Vetores (Arrays Dinâmicos)
9 lições861- 01Introdução ao std::vectorQuiz
- 02Criando um VetorDesafioQuiz
- 03Adicionando ElementosDesafioQuiz
- 04Acessando ElementosDesafioQuiz
- 05Tamanho do VetorDesafioQuiz
- 06Iterando com um Loop ForDesafioQuiz
- 07Loop For Baseado em IntervaloDesafioQuiz
- 08Removendo ElementosDesafioQuiz
- 09Recapitulação - Operações com VetoresDesafio
Projeto: Ferramenta de Lista de Tarefas
Projeto5 lições1- 01Visão Geral do ProjetoDesafio
- 02Adicionando uma TarefaProjeto
- 03Visualizando TarefasProjeto
- 04Removendo uma TarefaProjeto
- 05Finalizando a FerramentaProjeto
Mapas (Pares Chave-Valor)
7 lições644- 01Introdução ao std::mapQuiz
- 02Criando um MapaDesafioQuiz
- 03Acessando e Modificando ValoresDesafioQuiz
- 04Verificando ChavesDesafioQuiz
- 05Removendo ParesDesafioQuiz
- 06Iterando sobre um MapaDesafioQuiz
- 07Recapitulação - Frequência de PalavrasDesafio
Projeto: Ferramenta de Inventário
Projeto5 lições1- 01Configuração do ProjetoDesafio
- 02Adicionando e Atualizando ItensProjeto
- 03Verificando o EstoqueProjeto
- 04Removendo Itens do EstoqueProjeto
- 05Imprimindo o Relatório de InventárioProjeto
Conjuntos (Elementos Únicos)
6 lições538- 01Apresentando o std::setQuiz
- 02Criar Conjunto e Adicionar ElementosDesafioQuiz
- 03Verificando ElementosDesafioQuiz
- 04Removendo ElementosDesafioQuiz
- 05Iterando sobre um ConjuntoDesafioQuiz
- 06Recapitulação - Números ÚnicosDesafio
Funções Avançadas
7 lições653- 01Passagem por ReferênciaDesafioQuiz
- 02Introdução a Expressões LambdaDesafioQuiz
- 03Lambdas com ParâmetrosDesafioQuiz
- 04Lambdas com Valores de RetornoDesafioQuiz
- 05Introdução à RecursãoQuiz
- 06Fatorial RecursivoDesafioQuiz
- 07Ordenação com LambdaDesafioQuiz
Tratamento Básico de Erros
6 lições540- 01Introdução a ExceçõesQuiz
- 02Os Blocos 'try' e 'catch'DesafioQuiz
- 03A Palavra-chave 'throw'DesafioQuiz
- 04Diferentes Tipos de ExceçãoDesafioQuiz
- 05O Manipulador Catch-AllDesafioQuiz
- 06Recapitulação - Divisão SeguraDesafio
Desafios Finais
3 lições3- 01Filtragem de Dados em VetoresDesafio
- 02Busca de Valores em MapasDesafio
- 03Ponteiro e Array DinâmicoDesafio
Seção 3
Programação Orientada a Objetos
Começar seçãoIniciarExpandirRecolherDescubra como organizar o código com classes, objetos e estruturas reutilizáveisFundamentos de OOP
11 lições1187- 01Arquivos ExternosDesafioQuiz
- 02Build e Compilação em C++DesafioQuiz
- 03Arquivos Header e SourceDesafioQuiz
- 04Namespaces e EscopoDesafioQuiz
- 05Introdução a OOP em C++DesafioQuiz
- 06Classes vs ObjetosDesafioQuiz
- 07O Ponteiro 'this'DesafioQuiz
- 08Métodos (Funções Membro)DesafioQuiz
- 09Atributos (Membros de Dados)DesafioQuiz
- 10Básico de Ctors e DtorsDesafioQuiz
- 11Recapitulação - Calculadora SimplesDesafio
Gerenciamento de Memória
6 lições644- 01Memória Stack vs HeapDesafioQuiz
- 02Ponteiros e ReferênciasDesafioQuiz
- 03Memória Dinâmica (new/delete)DesafioQuiz
- 04Smart Pointers em C++DesafioQuiz
- 05RAII em C++DesafioQuiz
- 06Recapitulação - Gerenciador de Array DinâmicoDesafio
Construtores e Destrutores
9 lições972- 01Construtor PadrãoDesafioQuiz
- 02Construtor ParametrizadoDesafioQuiz
- 03Construtor de CópiaDesafioQuiz
- 04Construtor de MovimentaçãoDesafioQuiz
- 05Listas de Inicialização do ConstrutorDesafioQuiz
- 06Construtores DelegadosDesafioQuiz
- 07Mergulho Profundo em DestrutoresDesafioQuiz
- 08Regra dos Três / Cinco / ZeroDesafioQuiz
- 09Recapitulação - Classe StringDesafio
Propriedades de Classe
7 lições753- 01Membros de Instância vs EstáticosDesafioQuiz
- 02Getters e SettersDesafioQuiz
- 03Funções de Membro ConstDesafioQuiz
- 04Palavra-chave MutableDesafioQuiz
- 05Métodos e Variáveis EstáticosDesafioQuiz
- 06Funções e Classes FriendDesafioQuiz
- 07Recapitulação - Gerenciador de Conta BancáriaDesafio
Encapsulamento
6 lições651- 01Especificadores de Acesso em C++DesafioQuiz
- 02Especificadores de Acesso em DetalhesDesafioQuiz
- 03Ocultação de InformaçãoDesafioQuiz
- 04Struct vs ClassDesafioQuiz
- 05Classes Aninhadas e InternasDesafioQuiz
- 06Recapitulação - Sistema de Registros de AlunosDesafioQuiz
Sobrecarga de Operadores
8 lições863- 01Introdução à Sobrecarga de OperadoresDesafioQuiz
- 02Sobrecarga de Operadores AritméticosDesafioQuiz
- 03Sobrecarga de Operadores de ComparaçãoDesafioQuiz
- 04Operadores de StreamDesafioQuiz
- 05Sobrecarga do Operador de AtribuiçãoDesafioQuiz
- 06Sobrecarga dos Operadores [] e ()DesafioQuiz
- 07Operadores de Conversão de TipoDesafioQuiz
- 08Recapitulação - Classe MatrixDesafio
Herança
8 lições862- 01Herança BásicaDesafioQuiz
- 02Níveis de Acesso na HerançaDesafioQuiz
- 03Ordem de Chamada de Ctor e DtorDesafioQuiz
- 04Sobrescrita de MétodosDesafioQuiz
- 05Funções Virtuais e VTableDesafioQuiz
- 06Herança MúltiplaDesafioQuiz
- 07Herança VirtualDesafioQuiz
- 08Recapitulação - Hierarquia de FuncionáriosDesafio
Polimorfismo
8 lições860- 01Polimorfismo de Compilação vs Tempo de ExecuçãoDesafioQuiz
- 02Sobrecarga de FunçõesDesafioQuiz
- 03Funções Virtuais RevisitadasDesafioQuiz
- 04Funções Virtuais PurasDesafioQuiz
- 05Classes AbstratasDesafioQuiz
- 06Design de Interfaces em C++DesafioQuiz
- 07Dynamic Casting e RTTIDesafioQuiz
- 08Recapitulação - Calculadora de FormasDesafio
Templates
6 lições546- 01Templates de FunçãoDesafioQuiz
- 02Templates de ClasseDesafioQuiz
- 03Especialização de TemplatesDesafioQuiz
- 04Templates VariádicosDesafioQuiz
- 05Fundamentos de SFINAE e Type TraitsQuiz
- 06Recapitulação - Container GenéricoDesafio
Visão Geral da STL
6 lições646- 01Visão Geral e Filosofia da STLDesafioQuiz
- 02Containers da STLDesafioQuiz
- 03IteradoresDesafioQuiz
- 04Algoritmos da STLDesafioQuiz
- 05Functors e Expressões LambdaDesafioQuiz
- 06Recapitulação - Frequência de PalavrasDesafio
Conceitos Avançados de POO
7 lições763- 01Composição vs HerançaDesafioQuiz
- 02Mixins via CRTPDesafioQuiz
- 03Pimpl IdiomDesafioQuiz
- 04Type ErasureDesafioQuiz
- 05Enum Classes e Tipagem ForteDesafioQuiz
- 06Tratamento de Exceções em POODesafioQuiz
- 07Hierarquias de Exceções PersonalizadasDesafioQuiz
Recursos do C++ Moderno
7 lições764- 01Semântica de Movimento e RvaluesDesafioQuiz
- 02Perfect ForwardingDesafioQuiz
- 03Expressões Lambda em DetalhesDesafioQuiz
- 04std::function & std::bindDesafioQuiz
- 05constexpr e constevalDesafioQuiz
- 06Structured BindingsDesafioQuiz
- 07optional, variant, anyDesafioQuiz
Padrões de Projeto Parte 1
6 lições655- 01Introdução aos Padrões de ProjetoDesafioQuiz
- 02Padrão SingletonDesafioQuiz
- 03Factory e Abstract FactoryDesafioQuiz
- 04Padrão BuilderDesafioQuiz
- 05Padrão ObserverDesafioQuiz
- 06Padrão StrategyDesafioQuiz
Padrões de Projeto Parte 2
7 lições764- 01Padrão CommandDesafioQuiz
- 02Padrão AdapterDesafioQuiz
- 03Padrão DecoratorDesafioQuiz
- 04Padrão Template MethodDesafioQuiz
- 05Padrão StateDesafioQuiz
- 06Padrão CompositeDesafioQuiz
- 07RAII como um PadrãoDesafioQuiz
Desafios Finais
2 lições2- 01Plataforma de E-LearningDesafio
- 02Sistema BancárioDesafio
Por que aprender C++ com a Coddy
- Escreva e rode código C++ de verdade no navegador. Sem instalar compilador, sem configurar toolchain. Cada aula compila seu C++ no servidor e mostra a saída na hora.
- C++ moderno: classes e objetos, herança, funções virtuais, referências e ponteiros, templates, a STL. Os padrões de C++ que você realmente usa hoje em dia.
- As dicas de IA ajudam você a ler e corrigir os erros do compilador C++ — em especial aqueles famigerados por serem crípticos — para que a linguagem pareça acessível em vez de punitiva.
- Certificado grátis de C++ ao concluir o curso. Útil para vagas em sistemas, game-dev e embarcados, onde fluência em C++ é o mínimo esperado.
Perguntas frequentes sobre aprender C++
C++ é fácil de aprender?
C++ tem fama de ser uma das linguagens mais difíceis de aprender — ponteiros, gerenciamento manual de memória e um conjunto enorme de recursos pesam bastante. A boa notícia é que você não precisa de todos os recursos logo de cara. O curso começa pelo núcleo prático (variáveis, controle de fluxo, funções, classes) e só introduz ponteiros e templates depois que o básico está firme.
Devo aprender C ou C++ primeiro?
Os dois ensinam o pensamento de baixo nível, mas levam para caminhos diferentes. C é menor e te força a encarar memória e ponteiros logo de cara. C++ é maior, mas permite uma curva mais gradual passando por classes e a STL antes de você ter que gerenciar memória na mão. Para desenvolvimento de aplicações ou de jogos, comece com C++; para trabalhos embarcados ou de sistemas operacionais, C está mais perto do metal.
Quanto tempo leva para aprender C++?
Os fundamentos de C++ — sintaxe, controle de fluxo, funções, classes simples — levam de três a seis semanas de prática diária. Usar pointers, templates e a STL com naturalidade costuma levar de três a seis meses. Dominar de fato (idiomas modernos de C++, trabalho de performance, bases de código complexas) é uma jornada de vários anos.
Posso aprender C++ online de graça?
Sim. O curso interativo de C++ é gratuito — lições, exercícios de código, quizzes e certificado. O editor roda no seu navegador, então você não precisa instalar GCC, Clang ou Visual Studio localmente para começar a escrever C++.
Preciso instalar um compilador para fazer este curso de C++?
Não. Todo exercício de C++ é compilado no servidor em um ambiente sandbox e mostra a saída ao lado do seu código. Sem toolchain, sem makefile, sem IDE.
Recebo um certificado de C++ ao terminar o curso?
Sim. Ao concluir o curso de C++, você recebe um certificado de conclusão gratuito. Uma prova verificável que pode adicionar ao seu currículo ou LinkedIn ao lado do código do seu portfólio.