More Exceptional C++
272 páginas
Portuguese
PDF
4.5

More Exceptional C++

More Exceptional C++

Autor:

Ano:

Resumo:

Introdução

O livro «More Exceptional C++» (2001) é a continuação da famosa coleção de problemas e soluções de Herb Sutter, um dos principais especialistas na linguagem C++. Se o primeiro livro «Exceptional C++» estabeleceu a base para uma compreensão profunda de exceções, gerenciamento de memória e design de classes, a segunda parte eleva o nível ainda mais. Aqui, o autor propõe 40 novos problemas (Items), divididos em seções temáticas, que abrangem tanto problemas clássicos (segurança de exceções, RAII, expressões idiomáticas) quanto tópicos mais avançados: otimização de STL, nuances de herança, templates e até mesmo questões de multithreading (no contexto de C++98/03). O livro é escrito no formato "pergunta-resposta": primeiro é apresentado um problema, depois é feita uma análise detalhada com código, análise e conclusões. Não é um tutorial para iniciantes — é uma coleção de quebra-cabeças para aqueles que já escrevem em C++ com confiança e desejam evitar armadilhas comuns.

Sobre o que é o livro

O tema principal é a segurança de exceções e o gerenciamento correto de recursos. Sutter analisa consistentemente como escrever código que não "vaze" quando ocorrem exceções, como usar a expressão idiomática RAII (Resource Acquisition Is Initialization) e como projetar classes resistentes à execução parcial de operações. O livro também aborda:

  • Regras de sobrecarga de operadores (especialmente operator= e operator[]);
  • Nuances do trabalho com contêineres STL (std::vector, std::list, std::map);
  • Expressões idiomáticas "pimpl" (pointer to implementation) e "copy-and-swap";
  • Problemas de herança múltipla e classes base virtuais;
  • Otimização de código usando templates e estratégias (policy-based design);
  • Tratamento de erros em construtores e destrutores.

Cada capítulo contém exemplos de código específicos que podem ser aplicados imediatamente em projetos reais. Sutter não apenas fornece soluções prontas, mas também explica por que outras abordagens são errôneas e quais consequências podem surgir.

Para quem é este livro

O livro é voltado para desenvolvedores C++ experientes que já estão familiarizados com sintaxe, classes, herança e templates. Será útil para:

  • Programadores que trabalham em sistemas de alta confiabilidade (finanças, telecomunicações, sistemas embarcados);
  • Desenvolvedores de bibliotecas e frameworks, onde a estabilidade da API é importante;
  • Estudantes de graduação e pós-graduação que estudam conceitos avançados de C++;
  • Todos que desejam aprimorar habilidades de depuração e refatoração de código complexo.

Para iniciantes, o livro parecerá difícil — é melhor começar com «Exceptional C++» ou «Effective C++» de Scott Meyers.

O que o leitor aprenderá

Após a leitura, você será capaz de:

  • Garantir segurança de exceções em três níveis (basic, strong, nothrow);
  • Implementar corretamente operadores de atribuição e cópia;
  • Evitar vazamentos de memória e recursos em construtores;
  • Otimizar o uso de contêineres STL (por exemplo, evitar cópias desnecessárias);
  • Aplicar a expressão idiomática "copy-and-swap" para escrever um operator= confiável;
  • Entender quando usar herança virtual e quando usar composição;
  • Projetar classes considerando possíveis exceções em destrutores.

Pontos fortes

A principal vantagem do livro é a orientação prática. Cada problema é acompanhado de código real que pode ser compilado e testado. Sutter não tem medo de mostrar opções incorretas e explicar por que elas são perigosas. O segundo ponto positivo é a estrutura: o livro é dividido em pequenos capítulos (2–5 páginas), permitindo que seja lido em partes, retornando a tópicos complexos. O terceiro é a ênfase na segurança de exceções, que permanece relevante mesmo após 20 anos: o C++ moderno (C++11/14/17/20) adicionou novas ferramentas (move-semântica, unique_ptr, optional), mas os princípios básicos apresentados por Sutter não ficaram desatualizados. Finalmente, o estilo do autor — vivo, com uma pitada de humor e autoironia — torna

Recommendations