Curso de C ++ no CS Center, primeira parte

O Computer Science Center é uma iniciativa conjunta do Clube de Ciência da Computação do POMI RAS, JetBrains e da Yandex Data Analysis School .

O centro existe para permitir que estudantes e graduados talentosos se desenvolvam em áreas de seu interesse: Ciência da Computação, Ciência de Dados ou Engenharia de Software.

O curso C ++ em duas partes do centro é ministrado por Valery Mikhailovich Lesin, valery-l , professora no centro de CS e magistratura conjunta do ITMO e JetBrains "Desenvolvimento de Software / Engenharia de Software", diretor técnico da Simlabs .

A primeira parte do curso é necessária para criar a base de C ++: até o final do semestre, os alunos têm mais chances de obter habilidades de programação suficientes nessa linguagem para resolver seus problemas. Até agora, sem movimento, semântica, sfinae, mas para começar isso, provavelmente, será suficiente.

Para estudantes com experiência em C ++, esta parte ajudará a fechar lacunas. Por exemplo, ao vincular, trabalhar com memória, funções lambda e outros tópicos. As palestras apresentarão uma retrospectiva de práticas estabelecidas, bem como uma visão geral das possibilidades que os mais recentes padrões de idiomas oferecem. O curso foi desenvolvido para que estudantes de diferentes níveis possam encontrar nele um novo material.

Tenha uma bela vista!

1. Organização do desenvolvimento do programa C ++.

História e filosofia da linguagem. Aplicabilidade: prós e contras. Bibliotecas, compilação, ferramentas de desenvolvimento. Variáveis, condições, loops, funções, entrada e saída simples.


2. O layout dos programas. Unidades de transmissão. Declarações e definições. ODR. Variáveis ​​globais e locais.


3. Trabalhe com memória. Executando programas.

Arquitetura, processo e threads. Processar dispositivo de memória, memória de página. Desreferenciamento, ponteiros, matrizes. Aritmética de ponteiros, constantes e ponteiros constantes. Links, inicialização de links constantes, alocação de memória, vazamentos de memória.


4. Tipos, instruções e operadores integrados.

Tamanhos de tipo, conversão explícita de tipo, tipo nulo, seqüências terminadas nulas, enumerações de enumeração, sinônimo de typedef. Declarações, escopo e visibilidade, estrutura. Operadores, expressões, incremento / decremento, declaração (declaração) de escolha. Loops, comentários, operadores.


5. Funções.

Programação estrutural. Declarando funções, passando parâmetros, passando matrizes, retornando um valor. Sobrecarga, seleção de função. Argumentos por padrão. Número arbitrário de argumentos, ponteiro para uma função. Vincular e função.


6. aulas.

Tipos de classe, definição de classe, funções de membro, controle de acesso, definição de função de classe, 4 funções principais, truque de troca. Campos de classe.


7. Espaço para nome. Substituir operadores.

Declarando e usando o namespace, usando a diretiva, usando a declaração, procure Koenig. Sobrecarregando operadores, o que é possível e impossível, onde e como escrever operadores, exemplos de declarações de operadores, conversão explícita e implícita. Aritmética mista. Recursos de amigo. Incremento de prefixo e postfix. Functors. Operadores para um ponteiro. Como fazer funções?


8. Polimorfismo dinâmico: herança simples.

Realização de objetos. Composição. Herança Localização dos campos. Características de herança. Construtores. Comportamento polimórfico. Campo de tipo, funções virtuais, tabela de funções virtuais, fatia, funções virtuais puras, herança pública e privada. Destruidor. Chame funções virtuais.


9. Polimorfismo dinâmico: herança múltipla e virtual.

Herança múltipla, resolução de ambiguidade, ocultando funções, repetindo a classe base. Herança virtual, repetição de classe base, controle de acesso, uso de métodos protegidos, conversão dinâmica de tipo e referência, static_cast e dynamic_cast, operador typeid, localização de um objeto na memória.


10. Introdução aos modelos. Modelos de classe e função.

Classe de modelo, recursos de modelo, funções de modelo, instanciação, parâmetros de modelo, equivalência de tipo, inferência de tipo, sobrecarga de função, seleção de algoritmo, argumentos padrão.


11. Introdução aos modelos. Especialização. Relação com herança. Ponteiros inteligentes.

Especialização de modelos de classe. Especialização parcial. Base não padronizada geral. Instanciação explícita. Especialização de modelos de função. CRTP Modelo typedef. Herança e padrões. O modelo funciona em uma classe genérica. Polformismo dinâmico e estático.


12. ponteiros inteligentes.


13. Estratégias de tratamento de erros. Depuração


O que ler além


  • B. Mu. Programação eficaz em C ++.
  • S. Meyers. C ++ eficiente e moderno: 42 recomendações para o uso do C ++ 11 e C ++ 14.

Source: https://habr.com/ru/post/pt467781/


All Articles