Por que aprender aqui?
Desde 1992 no mercado de C++, somos a primeira empresa no Brasil a investir fortemente no avanço da linguagem no país.
Nossas aulas são ministradas por nossos desenvolvedores de sistemas para tornar nosso método de ensino o mais real e esclarecedor possível. Nosso maior interesse é que todos possam realmente aprender com nossos cursos e aumentar ainda mais a comunidade C/C++ no Brasil.
Nosso curso é indicado para
Ideal para quem realmente quer aprender C++, irá atender tanto aqueles que estão começando como aqueles que já programam em C e C++, porém, não aprenderam a base inicial para boas práticas, métodos facilitadores ou C++ moderno. Não é um curso básico, abordamos diversos assuntos desde o básico ao avançado.
Pré-requisito: Caso não tenha conhecimento algum em C ou C++, não haverá problemas, o único pré-requisito para participar do curso de C++ é saber alguma linguagem de programação ou no mínimo ter conhecimentos em lógica de programação.
Você receberá: Apostila produzida pela Agit Informática (PDF) contendo aproximadamente 480 páginas, todos os códigos fontes dos exercícios feitos em aula e materiais adicionais para estudo.
Carga horária: Total de 25 aulas de 2h (50h) e 14h de atividades extra classe para o aluno resolver os exercícios offline.
Conteúdo programático
Recentemente o curso recebeu uma atualização e um acréscimo em sua carga horária, hoje o padrão da Linguagem visto no curso já contém as principais atualizações dos padrões 11, 14 e 17.
Iniciando com as Linguagens C e C++
- Declaração de Variáveis;
- Tipos primitivos de Dados;
- Cast (Conversão entre Tipos);
- Condicionais If, Else If, Else;
- Laços;
- Fluxo de Processamento;
- Estrutura de Dados;
- Funções / lambdas;
- Funções com passagem de parâmetros por cópia;
- Funções com passagem de parâmetros por endereço ou referência;
- Função Main;
- Operadores;
- Entendendo C++ como uma linguagem multiparadigma, com suporte a mais que uma técnica de programação, indo além de Orientação a Objetos;
- if constexpr.
Ocupando e acessando a memória / Fluxo de processamento
- Classes e tipos de variáveis (tipos básicos ou primitivos);
- Controle do fluxo de processamento: (módulos, funções, laços, blocos, decisões);
- Operadores;
- O pré processador (diretivas de pré processamento), (padronização de constantes);
- Entendendo a memória global, a pilha e o heap, (vetores, matrizes e ponteiros);
- Ponteiros e referências (o especificador const);
- Ponteiros para funções;
- Criando tipos através de estruturas, classes, uniões e enumeradores;
- Referências rvalue e a semântica move;
- auto;
- Inicialização uniforme;
- Nullptr.
Estruturas e classes C++
- Conceitos de programação estruturada e modular;
- Conceito de orientação a objetos (OOP) e sua implementação em C++;
- Encapsulamento: namespace; struct e class, tipos aninhados;
- Criando membros de dados e funções-membro, definindo proteções de acesso aos membros;
- Funções construtoras e função destrutora;
- Construtores: padrão, de cópia e de mover;
- Construtores explicit;
- O ponteiro this; definindo o ponteiro this como const; especificação mutable para membros de dados;
- Classes e funções amigas;
- Identidade; membros estáticos; constantes membras;
- Criando operadores membros de uma class ou struct;
- Sobrecarga de funções e operadores;
- Reaproveitamento de código: agregação e herança;
- Herança: interdependências entre herança e encapsulamento;
- Restrição de acesso protected;
- Derivação public, private e protected;
- Herança simples e herança múltipla;
- Polimorfismo; interdependências entre herança e polimorfismo: redefinição de funções; funções virtuais e funções virtuais puras; redefinição de funções virtuais;
- A OOP e a técnica da linha de montagem: desenvolvendo componentes de software por meio de classes e objetos em C++;
- Utilizando funções virtuais para criar interfaces, frameworks e eventos;
- Tratamento de excessões: throw, try, catch( ), catch(...); set_terminate, set_unexpected;
- Delegando construtoras;
- Herdando construtoras;
- Inicialização de membros in-class;
- Inicialização uniforme de membros;
- Default;
- Final e Override;
- noexcept;
- Inline variables;
- Strings raw.
Templates
- O que são templates; entendendo a parametrização de tipos; templates de classes e templates de funções;
- Templates e programação genérica;
- Como operadores colaboram em programação genérica através de templates;
- Especialização de templates;
- Templates de conversão de tipo (casts): dynamic_cast, static_cast, reinterpret_cast, const_cast; criando casts personalizados.
Biblioteca padrão C++
- Allocators;
- Iterators;
- Classes containers (string,wstring.list,vector,map,multimap,set,multiset,Array,forward_list e outros);
- Manipulação entrada e saída (iostream);
- Chrono: Controle de tempo;
- Range for based loops;
- Class template argument deduction;
- Optional;
- Variants.
Multithreading
- Threads;
- Mutex;
- std::this_thread::sleep_for.
Por que aprender C++?
É fundamental que todo bom programador conheça DUAS ou mais Linguagens de programação, mas se você quer se tornar um ótimo programador, aprenda C++. Tire suas dúvidas sobre carreira, áreas de aplicações e muito mais.