Estoy desarrollando un emulador NES como hobby, en mi tiempo libre. Uso C ++ porque es el lenguaje que más uso, sé más y me gusta más.
Pero ahora que avancé un poco en el proyecto, me doy cuenta de que no estoy usando casi ninguna característica específica de C ++, y podría haberlo hecho en C simple y obtener el mismo resultado. No uso plantillas, sobrecarga de operadores, polimorfismo, herencia. Entonces, ¿qué dirías? ¿Debo permanecer en C ++ o reescribirlo en C?
No haré esto para ganar rendimiento, podría ser un efecto secundario, pero la idea es ¿por qué debería usar C ++ si no lo necesito?
Las únicas características de C ++ que estoy usando son clases para encapsular datos y métodos, pero eso se puede hacer también con estructuras y funciones, estoy usando new y delete, pero también podría usar malloc y free, y estoy usando la herencia solo para devoluciones de llamada, lo que podría lograrse con punteros a funciones.
Recuerde, es un proyecto de pasatiempo, no tengo plazos, por lo que el tiempo de trabajo y el trabajo que requerirían una reescritura no son un problema, también pueden ser divertidos. Entonces, la pregunta es C o C ++?
I use C++ because is the language I use mostly, know mostly and like mostly.
Y esa es la respuesta a tu pregunta. Solo debe cambiar los idiomas a mitad del proyecto cuando hay un problema que su idioma actual no puede resolver. I don't use templates, operator overloading, polymorphism, inheritance.
Sería mucho más valioso aprender y usar los conceptos, que cambiar a C. Dado que este es un proyecto de pasatiempo, ¿por qué no usar algunas cosas que no ha usado antes? Siempre puede comenzar otro proyecto en C y aprender el lenguaje, pero para su proyecto actual no tiene sentido cambiar.
std::shared_ptr
, std::unique_ptr
, boost::scoped_ptr
, std::vector
, std::deque
, std::map
, etc Para las funciones de devolución de llamada, mirada en el uso de palabras funcionales, y en C ++ 11, se También puede comenzar a usar cosas como funciones lambda.