Embora aqui me refira especificamente às convenções de nomenclatura de C ++ e Bjarne Stroustrup , em princípio, vi que as pessoas usam regras um pouco semelhantes para outras linguagens aqui e ali.
Portanto, a idéia básica é que seja possível distinguir tipos padrão de tipos definidos pelo usuário enquanto lê o código. Por exemplo, Bjarne Stroustrup sugere que se use
uma letra maiúscula inicial para tipos (por exemplo, Quadrado e Gráfico)
que, tendo em conta que
A linguagem C ++ e a biblioteca padrão não usam letras maiúsculas
permite atingir o objetivo mencionado acima.
Mas por que precisamos fazer isso? Qual pode ser o objetivo de distinguir tipos padrão e definidos pelo usuário?
Não consegui encontrar nenhum raciocínio de Bjarne Stroustrup sobre esse assunto e, além disso, penso eu de maneira diametralmente oposta. : Eu sei, eu sei: "Quem sou eu para disputar a Stroustrup?" Mas ouça, vários recursos da linguagem C ++, por exemplo, sobrecarga do operador, servem ao propósito de permitir que tipos definidos pelo usuário tenham um nível semelhante de suporte sintático aos tipos padrão. E então tudo isso é confundido por uma disciplina de nomeação diferente ...
PS Sem mencionar que muitas vezes uma palavra não é suficiente para nomear uma classe e uma palavra separada por sublinhado que começa com uma letra maiúscula parece tão estranha.
fonte
Respostas:
Não há absolutamente nenhum propósito ou benefício em tal. Um dos objetivos do C ++ era tratar UDTs e primitivos de forma intercambiável e, embora não tenham sido totalmente bem-sucedidos, essa é uma área em que você não precisa se diferenciar.
Quando se trata de nomear, Stroustrup é maluco, e esse é um fato cientificamente comprovado.
fonte
snake_case
para minhas classes e espaços de nomes e não tive problemas - ou confusão - causados por isso ainda.As convenções de nomenclatura são sobre o suporte à compreensão humana (ou seja, programador e mantenedor) do código.
As UDTs podem ser especificadas para que a declaração de variáveis, inicialização, expressões e instruções funcionem nelas de maneira diferente do que ocorre nos tipos padrão. Para encontrar problemas, é útil que o mantenedor tenha alguma pista de que alguma seção do código pode fazer coisas estranhas (por exemplo, a implementação de um tipo integral definido pelo usuário, usado em alguma função, pode ter uma falha na maneira como faz isso).
Existem muitas maneiras de fornecer essas dicas (comentários, especificações de design etc.). A vantagem das convenções de nomenclatura é que elas estão presentes no código, enquanto os comentários podem ser omitidos, desatualizados etc.
fonte
Uma razão pela qual uso palavras em maiúsculas para tipos é distinguir variáveis de tipos. Isso permite declarar uma variável com, além da capitalização, o mesmo nome:
Isso pode ser útil para classes nas quais apenas uma instância é usada em cada contexto, por exemplo, definições de configuração.
fonte