Sto sviluppando un emulatore NES come hobby, nel mio tempo libero. Uso C ++ perché è il linguaggio che uso principalmente, lo so soprattutto e mi piace soprattutto.
Ma ora che ho fatto qualche progresso nel progetto, mi rendo conto che non sto usando quasi nessuna caratteristica specifica di C ++, e avrei potuto farlo in C semplice e ottenere lo stesso risultato. Non uso modelli, sovraccarico dell'operatore, polimorfismo, eredità. Quindi cosa diresti? dovrei rimanere in C ++ o riscriverlo in C?
Non lo farò per ottenere prestazioni, potrebbe avere un effetto collaterale, ma l'idea è perché dovrei usare il C ++ se non ne ho bisogno?
Le uniche funzionalità di C ++ che sto usando sono le classi per incapsulare dati e metodi, ma ciò può essere fatto anche con strutture e funzioni, sto usando new ed delete, ma potrei anche usare malloc e free, e sono utilizzando l'ereditarietà solo per i callback, che potrebbe essere ottenuto con i puntatori alle funzioni.
Ricorda, è un progetto hobby, non ho scadenze, quindi i tempi di lavoro e il lavoro che richiederebbero una riscrittura non sono un problema, potrebbe anche essere divertente. Quindi, la domanda è C o C ++?
I use C++ because is the language I use mostly, know mostly and like mostly.
E questa è la risposta alla tua domanda. Dovresti cambiare lingua a metà progetto quando c'è un problema che la tua lingua attuale non può risolvere. I don't use templates, operator overloading, polymorphism, inheritance.
Sarebbe molto più prezioso imparare e usare i concetti, piuttosto che passare a C. Dato che si tratta di un progetto hobby, perché non usare alcune cose che non hai mai usato prima? Puoi sempre iniziare un altro progetto in C e imparare la lingua, ma per il tuo progetto attuale non ha senso cambiare.
std::shared_ptr
, std::unique_ptr
, boost::scoped_ptr
, std::vector
, std::deque
, std::map
, ecc Per le funzioni di callback, sguardo l'uso di funtori, e in C ++ 11, si può anche iniziare a usare cose come le funzioni lambda.