C++ Eficaz 55 maneiras de aprimorar seus programas e projetos

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Author(s): Scott Meyers
Edition: Terceira Edição
Publisher: Bookman
Year: 2011

Language: Portuguese
Pages: 304

AUTOR
AGRADECIMENTOS
PREFÁCIO
SUMÁRIO
INTRODUÇÃO
1. ACOSTUMANDO-SE COM A LINGUAGEM C++
Item 1: Pense em C++ como um conjunto de linguagens
Item 2: Prefira constantes, enumerações e internalizações a definições
Item 3: Use const sempre que possível
Item 4: Certifique-se de que os objetos sejam inicializados
antes do uso
2. CONSTRUTORES, DESTRUTORES E OPERADORES DE ATRIBUIÇÃO
Item 5: Saiba quais funções C++ escreve e chama silenciosamente
Item 6: Desabilite explicitamente o uso de funções geradas pelo compilador que você não queira
Item 7: Declare os construtores como virtuais em classes-base polimórficas
Item 8: Impeça que as exceções deixem destrutores
Item 9: Nunca chame funções virtuais durante a construção ou a destruição
Item 10: Faça com que os operadores de atribuição retornem uma referência para *this
Item 11: Trate as autoatribuições em operator=
Item 12: Copie todas as partes de um objeto
3. GERENCIAMENTO DE RECURSOS
Item 13: Use objetos para gerenciar recursos
Item 14: Pense cuidadosamente no comportamento de cópia em classes de gerenciamento de recursos
Item 15: Forneça acesso a recursos brutos em classes de gerenciamento de recursos
Item 16: Use a mesma forma nos usos correspondentes de new e delete
Item 17: Armazene objetos criados com new em ponteiros espertos em sentenças autocontidas
4. PROJETOS E DECLARAÇÕES
Item 18: Deixe as interfaces fáceis de usar corretamente e difíceis de usar incorretamente
Item 19: Trate o projeto de classe como projeto de tipo
Item 20: Prefira a passagem por referência para constante em vez da passagem por valor
Item 21: Não tente retornar uma referência quando você deve retornar um objeto
Item 22: Declare os membros de dados como privados
Item 23: Prefira funções não membro e não amigas a funções membro
Item 24: Declare funções não membro quando as conversões de tipo tiverem de ser aplicadas a todos os parâmetros
Item 25: Considere o suporte para um swap que não lance exceções
5. IMPLEMENTAÇÕES
Item 26: Postergue a definição de variáveis tanto quanto possível
Item 27: Minimize as conversões explícitas
Item 28: Evite retornar “manipuladores” para objetos internos
Item 29: Busque a criação de código seguro em relação a exceções
Item 30: Entenda as vantagens e desvantagens da internalização
Item 31: Minimize as dependências de compilação entre os arquivos
6. HERANÇA E PROJETO ORIENTADO A OBJETOS
Item 32: Certifique-se de que a herança pública modele um relacionamento “é um(a)”
Item 33: Evite ocultar nomes herdados
Item 34: Diferencie a herança de interface da herança de implementação
Item 35: Considere alternativas ao uso de funções virtuais
Item 36: Nunca redefina uma função não virtual herdada
Item 37: Nunca redefina um valor padrão de parâmetro herdado de uma função
Item 38: Modele “tem um(a)” ou “é implementado(a) em termos de” com composição
Item 39: Use a herança privada com bom-senso
7. TEMPLATES E PROGRAMAÇÃO GENÉRICA
Item 41: Entenda as interfaces implícitas e o polimorfismo em tempo de compilação
Item 42: Entenda os dois significados de typename
Item 43: Saiba como acessar nomes em classes-base com templates
Item 44: Fatore código independente de parâmetros a partir de templates
Item 45: Use templates de funções membro para aceitar “todos os tipos compatíveis”
Item 46: Defina funções não membro dentro de templates quando desejar conversões de tipo
Item 47: Use classes de trait para informações sobre tipos
Item 48: Fique atento à metaprogramação por templates
8. PERSONALIZANDO NEW E DELETE
Item 49: Entenda o comportamento do tratador de new
Item 50: Entenda quando faz sentido substituir new e delete
Item 51: Adote a convenção quando estiver escrevendo new e delete
Item 52: Escreva delete de posicionamento se escrever new de posicionamento
9. MISCELÂNEA
Item 53: Preste atenção aos avisos do compilador
Item 54: Familiarize-se com a biblioteca padrão, incluindo TR1
Item 55: Familiarize-se com Boost
ÍNDICE