Curso Acelerado de C++
Curso Acelerado de C++
Resumo:
Introdução
O livro «Accelerated C++: Practical Programming by Example» (em português — «Curso Acelerado de C++») de Andrew Koenig e Barbara Moo não é apenas mais um livro didático sobre linguagem de programação. É um manifesto de uma nova abordagem para o ensino de C++, que difere radicalmente dos volumes clássicos como «A Linguagem de Programação C++» de Bjarne Stroustrup. Publicado em 2000, este livro ainda continua sendo uma das introduções mais eficazes ao C++ para quem já sabe programar em outras linguagens (Java, Python, C#).
Os autores são especialistas reconhecidos no mundo do C++: Andrew Koenig foi um dos primeiros membros do comitê de padronização do C++, e Barbara Moo é coautora de vários livros e editora de longa data. Seu objetivo era ambicioso: ensinar a escrever C++ real e moderno desde o primeiro dia, evitando práticas ultrapassadas e código "puro" no estilo C.
Sobre o que é este livro?
Ao contrário dos livros didáticos tradicionais, que começam com tipos de dados, loops e funções, «Accelerated C++» mergulha imediatamente o leitor no trabalho com a biblioteca padrão (STL). O primeiro programa já usa vector, string e iostream. Os autores partem do princípio de que o leitor já está familiarizado com conceitos básicos de programação (variáveis, condicionais, loops), por isso não perdem tempo explicando esses fundamentos.
O livro é baseado em exemplos. Cada capítulo é um programa completo que resolve uma tarefa específica: desde a contagem de palavras até o trabalho com imagens. Gradualmente, de capítulo em capítulo, novos conceitos são introduzidos: iteradores, algoritmos, contêineres, classes, modelos (templates), gerenciamento de memória. Ao final do livro, o leitor não apenas dominará a sintaxe, mas também compreenderá a filosofia do C++: RAII, exceções, expressões idiomáticas de cópia e troca.
Para quem é este livro?
O livro é destinado a programadores experientes que desejam aprender C++ de forma rápida e eficaz. Se você já trabalhou com Java, Python ou C# e deseja migrar para C++ para programação de sistemas, jogos ou aplicações de alta carga, esta é a sua escolha. Para iniciantes que estão apenas começando sua jornada na programação, o livro parecerá muito difícil e rápido.
O que o leitor aprenderá?
- Biblioteca Padrão (STL): contêineres (
vector,list,map), iteradores, algoritmos (sort,find,copy). - Trabalho com strings e entrada/saída:
string,iostream, fluxos de arquivos. - Programação Orientada a Objetos em C++: classes, encapsulamento, herança, polimorfismo.
- Modelos (templates): escrita de código genérico, funções e classes modelo.
- Gerenciamento de memória: ponteiros inteligentes (
shared_ptr— no livro é usadoauto_ptr, que está obsoleto, mas o conceito está correto), RAII, prevenção de vazamentos. - Tratamento de exceções: código seguro, garantias de exceções.
- Expressões idiomáticas de C++: cópia e troca (copy-and-swap), pimpl, expressão idiomática RAII.
- Projeto de programas: divisão em módulos, arquivos de cabeçalho, namespaces.
Pontos fortes do livro
1. Orientação prática. Cada capítulo contém um exemplo completo que pode ser executado e modificado imediatamente. A teoria é fornecida exatamente na medida necessária para entender o exemplo.
2. C++ moderno (para sua época). O livro ensina a usar a STL, em vez de reinventar a roda. Os autores evitam consistentemente construções obsoletas (por exemplo, arrays no estilo C, ponteiros brutos para posse de memória).
3. Estrutura lógica. O material é apresentado em espiral: primeiro exemplos simples, depois eles se tornam mais complexos, novos detalhes são adicionados. Isso permite aumentar gradualmente a complexidade sem sobrecarga.
4. Ênfase em expressões idiomáticas. O livro explica não apenas