Saya sedang mengembangkan emulator NES sebagai hobi, di waktu senggang saya. Saya menggunakan C ++ karena bahasa yang saya gunakan kebanyakan, tahu sebagian besar dan suka kebanyakan.
Tapi sekarang saya membuat beberapa kemajuan dalam proyek saya menyadari saya tidak menggunakan hampir semua fitur spesifik C ++, dan bisa melakukannya di C polos dan mendapatkan hasil yang sama. Saya tidak menggunakan templat, kelebihan operator, polimorfisme, pewarisan. Jadi, apa yang akan Anda katakan? saya harus tetap di C ++ atau menulis ulang di C?
Saya tidak akan melakukan ini untuk mendapatkan kinerja, itu bisa datang sebagai efek samping, tetapi idenya adalah mengapa saya harus menggunakan C ++ jika saya tidak membutuhkannya?
Satu-satunya fitur C ++ yang saya gunakan adalah kelas untuk merangkum data dan metode, tetapi itu bisa dilakukan juga dengan struct dan fungsi, saya menggunakan baru dan menghapus, tetapi bisa juga menggunakan malloc dan gratis, dan saya menggunakan warisan hanya untuk panggilan balik, yang bisa dicapai dengan pointer ke fungsi.
Ingat, ini adalah proyek hobi, saya tidak punya tenggat waktu, jadi waktu overhead dan pekerjaan yang memerlukan penulisan ulang tidak masalah, mungkin menyenangkan juga. Jadi, pertanyaannya adalah C atau C ++?
I use C++ because is the language I use mostly, know mostly and like mostly.
Dan itulah jawaban untuk pertanyaan Anda. Anda seharusnya hanya beralih bahasa di tengah proyek ketika ada masalah yang tidak dapat diselesaikan oleh bahasa Anda saat ini. I don't use templates, operator overloading, polymorphism, inheritance.
Akan jauh lebih berharga untuk belajar dan menggunakan konsep, daripada beralih ke C. Karena ini adalah proyek hobi, mengapa tidak menggunakan beberapa hal yang belum pernah Anda gunakan sebelumnya? Anda selalu dapat memulai proyek lain dalam C dan mempelajari bahasa, tetapi untuk proyek Anda saat ini, tidak masuk akal untuk beralih.
std::shared_ptr
, std::unique_ptr
, boost::scoped_ptr
, std::vector
, std::deque
, std::map
, dll Untuk fungsi callback, melihat ke dalam penggunaan functors, dan di C ++ 11, Anda dapat juga mulai menggunakan hal-hal seperti fungsi lambda.