Boş zamanlarımda hobi olarak bir NES öykünücüsü geliştiriyorum. C ++ kullanıyorum çünkü en çok kullandığım dil, çoğunlukla biliyorum ve çoğunlukla seviyorum.
Ama şimdi projeye biraz ilerledim, C ++ 'ın neredeyse tüm spesifik özelliklerini kullanmadığımı fark ettim ve bunu düz C'de yapabilir ve aynı sonucu elde edebilirdim. Şablon, operatör aşırı yüklenmesi, polimorfizm, kalıtım kullanmıyorum. Ne söylerdin? C ++ 'da kalmalı mıyım yoksa C'de mi yeniden yazmalıyım?
Performans kazanmak için bunu yapmayacağım, bir yan etki olarak gelebilir, ama fikir neden ihtiyacım yoksa C ++ kullanmalıyım?
Kullandığım C ++ 'ın tek özellikleri veri ve yöntemleri kapsüllemek için sınıflardır, ancak yapı ve işlevlerle de yapılabilir, yeni ve siliyorum, ancak malloc ve ücretsiz de kullanabilirim ve ben mirasın sadece işlevlere işaretçilerle elde edilebilen geri aramalar için kullanılması.
Unutmayın, bu bir hobi projesi, son teslim tarihim yok, bu yüzden yeniden yazma gerektiren genel gider ve iş bir sorun değil, aynı zamanda eğlenceli olabilir. Yani, soru C veya C ++?
I use C++ because is the language I use mostly, know mostly and like mostly.
Ve sorunuzun cevabı bu. Dilleri projenin ortasında yalnızca geçerli dilinizin çözemediği bir sorun olduğunda değiştirmelisiniz. I don't use templates, operator overloading, polymorphism, inheritance.
Kavramları öğrenmek ve kullanmak için C'ye geçmekten çok daha değerli olurdu. Bu bir hobi projesi olduğundan, neden daha önce kullanmadığınız birkaç şeyi kullanmıyorsunuz? Her zaman C'de başka bir proje başlatabilir ve dili öğrenebilirsiniz, ancak mevcut projeniz için geçiş yapmak mantıklı değildir.
std::shared_ptr
, std::unique_ptr
, boost::scoped_ptr
, std::vector
, std::deque
, std::map
, sizi, geri arama fonksiyonları vb, functors kullanımına içine göz ve C ++ 11 lambda işlevleri gibi şeyleri kullanmaya da başlayabilir.