Perguntas com a marcação «c++»

57
Por que não existe uma construção 'finalmente' em C ++?

O tratamento de exceções em C ++ é limitado a tentativa / lançamento / captura. Diferentemente do Object Pascal, Java, C # e Python, mesmo no C ++ 11, a finallyconstrução não foi implementada. Tenho visto muita literatura C ++ discutindo "código de exceção seguro". Lippman escreve que o código...

56
Por que existem tantas classes de strings em face de std :: string?

Parece-me que muitas bibliotecas C ++ maiores acabam criando seu próprio tipo de string. No código do cliente você tem que usar o que a partir da biblioteca ( QString, CString, fbstringetc., tenho certeza que qualquer um pode citar alguns) ou manter a conversão entre o tipo padrão e aquela que os...

55
Por que temos incremento de postfix?

Disclaimer : Conheço perfeitamente a semântica do incremento de prefixo e postfix. Então, por favor, não me explique como eles funcionam. Lendo perguntas sobre estouro de pilha, não posso deixar de notar que os programadores ficam confusos com o operador de incremento do postfix repetidas vezes. A...

54
Por que a palavra-chave 'final' seria útil?

Parece que o Java teve o poder de declarar classes não deriváveis ​​por eras, e agora o C ++ também. No entanto, à luz do princípio Abrir / Fechar no SOLID, por que isso seria útil? Para mim, a finalpalavra - chave soa exatamente como friend- é legal, mas se você a estiver usando, provavelmente o...

51
O que acontece com o lixo em C ++?

Java tem um GC automático que de vez em quando para o mundo, mas cuida do lixo em uma pilha. Agora, os aplicativos C / C ++ não têm esses congelamentos do STW; o uso de memória também não aumenta infinitamente. Como esse comportamento é alcançado? Como são tratados os objetos...

50
C ++ fortemente tipado typedef

Eu tenho tentado pensar em uma maneira de declarar typedefs fortemente tipados, para capturar uma certa classe de bugs no estágio de compilação. Geralmente, digito um int em vários tipos de IDs ou um vetor para posição ou velocidade: typedef int EntityID; typedef int ModelID; typedef Vector3...

48
Quando NÃO usar destruidores virtuais?

Eu acreditava ter pesquisado muitas vezes sobre destruidores virtuais, a maioria menciona o propósito de destruidores virtuais e por que você precisa de destruidores virtuais. Também acho que na maioria dos casos os destruidores precisam ser virtuais. Então a pergunta é: Por que o c ++ não define...

48
As bibliotecas apenas de cabeçalho são mais eficientes?

Premissas Uma das vantagens das bibliotecas somente de cabeçalho para C ++ é que elas não precisam ser compiladas separadamente. Em C e C ++ inline, só faz sentido se a função estiver definida em um arquivo de cabeçalho *. Tradicionalmente, em C, o layout .c / .h é usado, onde o cabeçalho...