Articles of design de linguagem

Por que as referências não são recolocáveis ​​em C ++?

Referências C ++ possuem duas propriedades: Eles sempre apontam para o mesmo object. Eles não podem ser 0. Os pointers são o oposto: Eles podem apontar para objects diferentes. Eles podem ser 0. Por que não há “referência ou ponteiro não anulável e substituível” em C ++? Não consigo pensar em uma boa razão pela […]

Por que as funções inline do C ++ estão no header?

NB Esta não é uma questão sobre como usar funções inline ou como elas funcionam, mais por que elas são feitas do jeito que são. A declaração de uma function de membro de class não precisa definir uma function como inline , é apenas a implementação real da function. Por exemplo, no arquivo de header: […]

Por que a instrução switch foi projetada para precisar de uma pausa?

Dada uma simples troca de comando switch (int) { case 1 : { printf(“1\n”); break; } case 2 : { printf(“2\n”); } case 3 : { printf(“3\n”); } } A ausência de uma declaração de quebra no caso 2, implica que a execução continuará dentro do código para o caso 3. Isto não é um […]

Por que não posso ter methods estáticos abstratos em c #?

Eu tenho trabalhado com fornecedores ultimamente, e me deparei com uma situação interessante em que eu queria ter uma class abstrata que tivesse um método estático abstrato. Eu li alguns posts sobre o assunto, e meio que faz sentido, mas existe uma explicação clara?

Por que o! New Boolean (false) é igual a false em JavaScript?

A partir da documentação do jQuery sobre os tipos de JavaScript, vem este trecho de código que descreve o comportamento das strings quando convertido em booleano (esse tópico não está relacionado a essa pergunta, mas é exatamente onde eu encontrei o código): !”” // true !”hello” // false !”true” // false !new Boolean(false) // false […]

Por que o Java não suporta inins não assinados?

Por que o Java não inclui suporte para números inteiros sem sinal? Parece-me ser uma omissão estranha, uma vez que permitem escrever código com menor probabilidade de gerar overflows em inputs inesperadamente grandes. Além disso, usar inteiros sem sinal pode ser uma forma de autodocumentação, uma vez que indicam que o valor que o int […]

Por que os nomes das variables ​​não podem começar com números?

Eu estava trabalhando com um novo desenvolvedor de c ++ há algum tempo quando ele fez a pergunta: “Por que os nomes de variables ​​não podem começar com números?” Eu não consegui chegar a uma resposta, exceto que alguns números podem ter texto neles (123456L, 123456U) e isso não seria possível se os compiladores estivessem […]

Função de sobrecarga por tipo de retorno?

Por que as linguagens tipicamente mais mainstream não suportam sobrecarga de function / método por tipo de retorno? Eu não consigo pensar em nada disso. Não parece menos útil ou razoável do que suportar sobrecarga por tipo de parâmetro. Por que é tão menos popular?