Я розвиваю емулятор NES як хобі, у вільний час. Я використовую C ++, оскільки мова, якою я в основному користуюся, знаю здебільшого і люблю в основному.
Але тепер, коли я заздалегідь просунувся в проекті, я розумію, що не використовую майже ніяких конкретних особливостей C ++, і міг би це зробити в простому С і отримати той самий результат. Я не використовую шаблони, перевантаження оператора, поліморфізм, успадкування. То що б ви сказали? я повинен залишитися в C ++ або переписати його на C?
Я не буду робити це для підвищення продуктивності, це може стати побічним ефектом, але ідея: чому я повинен використовувати C ++, якщо він мені не потрібен?
Єдиними особливостями C ++, які я використовую, є класи для інкапсуляції даних та методів, але це можна зробити так само, як і структури та функції, я використовую нове та видалення, але також можу використовувати malloc та free, і я використання успадкування лише для зворотних викликів, які можна було б досягти за допомогою покажчиків на функції.
Пам'ятайте, це хобі-проект, у мене немає термінів, тож накладний час та робота, які потребували б переписування, не є проблемою, можливо, також будуть цікавими. Отже, питання C чи C ++?
I use C++ because is the language I use mostly, know mostly and like mostly.І це відповідь на ваше запитання. Ви повинні перемикати мови середнього проекту лише тоді, коли є проблема, яку поточна мова не може вирішити. I don't use templates, operator overloading, polymorphism, inheritance.Навчатися та використовувати поняття було б набагато корисніше, ніж переходити на C. Оскільки це проект хобі, чому б не використати кілька речей, якими ви раніше не користувалися? Ви завжди можете розпочати інший проект на мові C та вивчити мову, але для вашого поточного проекту не має сенсу перемикатися.
std::shared_ptr, std::unique_ptr, boost::scoped_ptr, std::vector, std::deque, std::mapі т.д. Для функції зворотного виклику, вид в використання функторів, і в C ++ 11, вам можна також почати використовувати такі речі, як лямбда-функції.