Estou desenvolvendo um emulador de NES como um hobby, no meu tempo livre. Eu uso C ++ porque é a linguagem que eu uso principalmente, conheço e gosto principalmente.
Mas agora que avancei no projeto, percebo que não estou usando quase nenhum recurso específico do C ++ e poderia ter feito isso em C simples e obtendo o mesmo resultado. Não uso modelos, sobrecarga de operador, polimorfismo, herança. Então o que você diria? devo ficar em C ++ ou reescrevê-lo em C?
Não farei isso para obter ganho de desempenho, isso pode ter um efeito colateral, mas a idéia é por que devo usar C ++ se não precisar?
Os únicos recursos do C ++ que estou usando são as classes para encapsular dados e métodos, mas isso também pode ser feito com estruturas e funções, estou usando new e delete, mas também poderia usar malloc e free, e estou usando herança apenas para retornos de chamada, o que pode ser alcançado com ponteiros para funções.
Lembre-se de que é um projeto de hobby, não tenho prazos; portanto, o tempo e o trabalho extras que exigiriam uma reescrita não são um problema, também podem ser divertidos. Então, a pergunta é C ou C ++?
I use C++ because is the language I use mostly, know mostly and like mostly.
E essa é a resposta para sua pergunta. Você só deve mudar o idioma no meio do projeto quando houver um problema que o seu idioma atual não consiga resolver. I don't use templates, operator overloading, polymorphism, inheritance.
Seria muito mais valioso aprender e usar os conceitos do que mudar para C. Como esse é um projeto de hobby, por que não usar algumas coisas que você nunca usou antes? Você sempre pode iniciar outro projeto em C e aprender o idioma, mas para o seu projeto atual não faz sentido mudar.
std::shared_ptr
, std::unique_ptr
, boost::scoped_ptr
, std::vector
, std::deque
, std::map
, etc. Para as funções de retorno de chamada, olhar para o uso de functors, e em C ++ 11, você também pode começar a usar coisas como funções lambda.