Eu costumava escrever C ++ extensivamente entre 8 e 10 anos atrás. Desde então, mudei para o C # por razões profissionais. No entanto, de tempos em tempos, vejo declarações como
"Se você ainda estiver rastreando manualmente as referências dos ponteiros, estará fazendo errado"
ou
"O C ++ é perfeitamente seguro desde que você use conceitos modernos como RAII e não aloque manualmente a memória como um desenvolvedor de C em recuperação".
Ambos eram procedimento padrão há uma década. Vi que o C ++ foi aprimorado consideravelmente nos últimos tempos; C ++ 0x em particular parece ter alguns novos recursos. Qual é o melhor recurso para um programador de "C / old C ++" se envolver com práticas e padrões "modernos" de C ++?
c++
design-patterns
c
programming-practices
c++11
GWLlosa
fonte
fonte
Respostas:
Pode ter mais a ver com os materiais instrucionais do que a maioria das outras coisas, mas, 8 a 10 anos atrás, parece-me que a maneira como o idioma foi usado diferia muito hoje. Hoje, o foco está mais em alavancar modelos, segurança de tipo e programação genérica onde antes havia mais medo de tudo isso e as pessoas focavam quase exclusivamente no C com aspectos de objetos.
Os materiais instrucionais também estão mudando. Enquanto antes do livro inicial de C ++ padrão o levaria através de printf, scanf, etc ... você quase nem os vê em livros com uma abordagem moderna.
Alguns bons livros são alguns dos livros vermelhos. C ++ excepcional, C ++ mais excepcional, metaprogramação de modelos em C ++, design moderno em C ++, C ++ acelerado ...
Eu acho que olhar para onde trabalho atualmente pode ser um bom exemplo. Eu vim aqui usando C ++ de uma maneira moderna e parece que a maioria dos desenvolvedores nem sabe o que estou fazendo ou por quê. Criando objetos com o operador () neles, por exemplo ... Tive que comentar de todas as ocorrências de bind () e, eventualmente, foi instruído a descartar todo esse código. Eles não sabem o que os inicializadores fazem ... Tem sido realmente esquisito e difícil para mim, na verdade.
fonte
Para obter uma rápida supervisão dos recursos modernos apresentados muito bem, você não erraria ao ver a apresentação recente de Herb Sutter , "Escrevendo códigos C ++ modernos: como o C ++ evoluiu ao longo dos anos" dos recursos C ++ em // build /.
Ele fala sobre por que é uma linguagem melhor do que o C # (é claro - a Microsoft troca suas calças regularmente, e hoje eles estão usando a moda C ++ para que exagerem nisso, apenas como eles exaltaram o C # como a resposta para a fome no mundo em uma década atrás), mas ao fazê-lo, ele descreve todos os bits bons (como gerenciamento de memória 'automático' e as classes STL) e depois fala sobre os novos bits do padrão C ++ 0x.
fonte