C++ Primer (5ª edição)
C++ Primer (5ª edição)
Resumo:
Introdução
O livro «C++ Primer» (5ª edição) de Stanley Lippman, Josée Lajoie e Barbara Moo não é apenas mais um livro didático sobre a linguagem C++. É um trabalho fundamental que, ao longo de muitos anos, continua sendo um dos guias mais autoritários e recomendados para aprender C++ moderno. Publicada em 2012, a quinta edição foi completamente revisada para refletir o padrão C++11, que trouxe muitas inovações importantes para a linguagem: expressões lambda, ponteiros inteligentes, semântica de movimento, novos contêineres e muito mais. O volume do livro – quase 1000 páginas – fala por si: você tem diante de si uma fonte abrangente de conhecimento que cobre a linguagem desde o básico até tópicos avançados.
Sobre o que é este livro
«C++ Primer» é estruturado como um curso sequencial de aprendizado. Os autores começam com o básico: tipos de dados, variáveis, expressões, estruturas de controle. Em seguida, passam gradualmente para funções, classes, sobrecarga de operadores, herança e polimorfismo. Atenção especial é dada à biblioteca padrão (STL): contêineres (vector, map, set, etc.), iteradores, algoritmos e a classe de strings. Capítulos separados são dedicados à manipulação de arquivos, tratamento de exceções, templates (incluindo templates variádicos) e multithreading. Cada tópico é ilustrado com muitos exemplos de código que podem ser testados imediatamente na prática.
Para quem é este livro
O livro é voltado para programadores iniciantes que já possuem habilidades básicas em alguma outra linguagem (por exemplo, Java, Python ou C#). Para iniciantes completos que nunca programaram, será difícil – os autores presumem que o leitor está familiarizado com conceitos básicos (loops, arrays, funções). Ao mesmo tempo, desenvolvedores experientes em C++ encontrarão muito material útil no livro: explicações aprofundadas dos recursos do C++11, detalhes sobre gerenciamento de memória, regras de dedução de tipos, semântica de movimento e domínio perfeito da biblioteca padrão.
O que o leitor aprenderá
- Fundamentos da linguagem: tipos de dados, variáveis, expressões, operadores, estruturas de controle.
- Funções e sobrecarga: declaração, passagem de argumentos, retorno de valores, sobrecarga de funções.
- Classes e objetos: definição de classes, construtores, destrutores, cópia, movimento, funções friend.
- Sobrecarga de operadores: como sobrecarregar operadores corretamente para tipos definidos pelo usuário.
- Herança e polimorfismo: classes base e derivadas, funções virtuais, classes abstratas.
- Templates: templates de funções e classes, templates variádicos, especialização.
- Biblioteca padrão: contêineres (
vector,list,map,unordered_map), iteradores, algoritmos, strings, fluxos de entrada/saída. - Gerenciamento de memória: alocação dinâmica, ponteiros inteligentes (
shared_ptr,unique_ptr), semântica de movimento. - Tratamento de exceções: try, catch, throw, garantias de segurança de exceções.
- Multithreading: threads, mutexes, variáveis de condição, operações atômicas.
Pontos fortes
A primeira e principal vantagem é a profundidade e precisão da exposição. Os autores não apenas listam construções sintáticas, mas explicam por que a linguagem é estruturada dessa forma e quais problemas cada recurso resolve. A segunda é a enorme quantidade de exemplos de qualidade. Cada exemplo pode ser copiado e compilado, eles realmente funcionam e demonstram padrões corretos. A terceira é a estrutura do livro: cada capítulo termina com um breve resumo e exercícios (com respostas no final do livro), permitindo consolidar o material. Finalmente, o livro é escrito em uma linguagem viva e clara, apesar da complexidade técnica do tema.