Como esse semestre estou pagando um disciplina chamada de “Programação Avançada com C++”, estarei apartir de hoje postando aqui no blog coisas relacionadas a programação em C++, e assim espero poder estar ajudando pessoas que desejam aprender C++ …
[1] Quando você programa, você cria uma representação concreta das idéias da sua solução para algum problema. Deixe a estrutura do programa refletir estas idéias tão diretamente quanto possível:
[a] se você pode pensar “nela” como uma idéia separada, faça dela uma classe.
[b] se você pode pensar “nela” como uma entidade separada, faça dela um objeto de alguma classe.
[c] se duas classes têm uma mesma interface, faça dessa interface uma classe abstrata.
[d] se a implementação de duas classes tem várias coisas em comum, faça dessas propriedades comuns uma classe base.
[e] se uma classe é um contêiner de objetos, faça dela um gabarito.
[f] se uma função implementa um algoritmo para um contêiner, faça dela uma função gabarito implementando o algoritmo para uma família de contêineres.
[g] se um conjunto de classes, gabaritos, etc. são logicamente relacionados, coloque-os em um mesmo ambiente de nomes.
[2] Quando você define uma classe que não implementa uma entidade matemática, como uma matriz, ou um número complexo ou um tipo e baixo nível, como uma lista encadeada:
[a] não use dados globais (use membros).
[b] não use funções globais.
[c] não use membros de dados públicos.
[d] não use funções friends, exceto para evitar [a] ou [c].
[e] não coloque um “campo de tipo” em uma classe; use funções virtuais.
[f] não use funções inline, exceto para uma otimização significativa.
Referência: [Stroustrup, 1994] Bjarne Stroustrup, The C++ Programming Language (Third Edition). Addison-Wesley.
É importante ressaltar que isso É UM CONSELHO E NÃO UMA REGRA… porém um conselho de quem criou a linguagem !!! =D
Abraço para todos !!!