C++ Eficaz: 55 maneiras seguras de melhorar seus programas
320 páginas
Portuguese
PDF
4.5

C++ Eficaz: 55 maneiras seguras de melhorar seus programas

C++ Eficaz: 55 maneiras seguras de melhorar seus programas

Autor:

Ano:

Resumo:

Introdução

O livro «Effective C++: 55 Specific Ways to Improve Your Programs and Designs» (em português — «C++ Eficaz: 55 maneiras seguras de melhorar seus programas») de Scott Meyers não é apenas um livro didático, mas um livro de cabeceira para todos que programam profissionalmente em C++. Publicado em 2005 (terceira edição), ele permanece relevante até hoje, apesar do surgimento do C++11, C++14, C++17 e C++20. Por quê? Porque Meyers ensina não a sintaxe, mas o raciocínio — como evitar armadilhas, escrever código C++ confiável, eficiente e de fácil manutenção.

O livro é estruturado como uma coleção de 55 regras específicas (items), cada uma sendo uma lição independente, apoiada por exemplos, explicações e referências ao padrão. Não é uma leitura "da capa à capa" (embora também possa ser), mas sim um guia de referência para o trabalho diário: abra a regra necessária — lembre-se de como fazer corretamente.

Sobre o que é este livro?

A ideia principal do livro é mostrar como usar C++ corretamente. Meyers não ensina os fundamentos da linguagem (presume-se que o leitor já conheça a sintaxe e os conceitos básicos), mas concentra-se em idiomas, padrões e detalhes que diferenciam um programador mediano de um especialista.

O livro abrange os seguintes tópicos (por seções):

  • Gerenciamento de recursos (regras 13–17): RAII, ponteiros inteligentes, prevenção de vazamentos.
  • Construtores, destrutores e operadores de atribuição (regras 5–12): como implementar corretamente cópia, atribuição, destrutores virtuais.
  • Projeto de classes e interfaces (regras 18–25): interfaces difíceis de usar incorretamente, const-correctness, passagem de parâmetros.
  • Eficiência (regras 26–31): inline, objetos temporários, otimização.
  • Herança e programação orientada a objetos (regras 32–40): funções virtuais, herança múltipla, interfaces.
  • Templates e programação genérica (regras 41–48): metaprogramação, traits, políticas.
  • Gerenciamento de memória (regras 49–52): new, delete, placement new.
  • Outros (regras 53–55): compatibilidade com C, exceções, dicas de estilo.

Para quem é este livro?

O livro é voltado para programadores que já conhecem C++ e desejam avançar para o próximo nível. Se você está começando a aprender C++ — leia primeiro algum livro didático (por exemplo, «C++ Primer» de Lippmann) e depois pegue Meyers. Se você já programa em C++ e sente que seu código "funciona, mas é meio estranho" — este livro é para você.

O livro também será útil para desenvolvedores de outras linguagens (Java, C#, Python) que estão migrando para C++ e desejam entender suas particularidades e pontos perigosos.

O que o leitor aprenderá?

Ao ler o livro, você aprenderá a:

  • Evitar vazamentos de memória e outros recursos usando RAII e ponteiros inteligentes.
  • Projetar classes corretamente: quando usar um destrutor virtual, quando declarar um construtor como explicit, como implementar cópia.
  • Escrever código eficiente: minimizar objetos temporários, usar inline com sabedoria, escolher entre passagem por valor e por referência.
  • Trabalhar com herança sem surpresas inesperadas (por exemplo, por que funções virtuais em construtores são uma má ideia).
  • Usar templates para criar soluções flexíveis e type-safe.
  • Gerenciar memória manualmente quando necessário (placement new, alocadores personalizados).
  • Compreender os idiomas de C++: pimpl, non-virtual interface (NVI), copy-and-swap e outros.

Pontos fortes do livro

1. Orientação prática. Cada regra é um

Recommendations