ฉันกำลังพัฒนาตัวจำลอง NES เป็นงานอดิเรกในเวลาว่าง ฉันใช้ C ++ เพราะเป็นภาษาที่ฉันใช้เป็นส่วนใหญ่รู้จักเป็นส่วนใหญ่และชอบมากที่สุด
แต่ตอนนี้ฉันก้าวไปข้างหน้าในโครงการฉันรู้ว่าฉันไม่ได้ใช้คุณสมบัติเฉพาะของ C ++ และสามารถทำได้ใน C ธรรมดาและรับผลลัพธ์เดียวกัน ฉันไม่ได้ใช้เทมเพลตการใช้งานอุปกรณ์มากเกินไปความหลากหลายรูปแบบการสืบทอด แล้วคุณจะว่าอย่างไร ฉันควรอยู่ใน C ++ หรือเขียนใหม่ใน C?
ฉันจะไม่ทำสิ่งนี้เพื่อเพิ่มประสิทธิภาพมันอาจมาเป็นผลข้างเคียง แต่ความคิดก็คือทำไมฉันต้องใช้ C ++ ถ้าฉันไม่ต้องการมัน?
คุณลักษณะเฉพาะของ C ++ ที่ฉันใช้คือคลาสเพื่อห่อหุ้มข้อมูลและวิธีการ แต่ก็สามารถทำได้เช่นกันกับ structs และฟังก์ชั่นฉันใช้ใหม่และลบ แต่ก็สามารถใช้ malloc และฟรีและฉัน ใช้การสืบทอดสำหรับการเรียกกลับซึ่งสามารถทำได้ด้วยตัวชี้ไปยังฟังก์ชัน
โปรดจำไว้ว่ามันเป็นโครงการงานอดิเรกฉันไม่มีกำหนดเวลาดังนั้นค่าใช้จ่ายและงานที่ต้องมีการเขียนใหม่ไม่ใช่ปัญหาอาจสนุกเช่นกัน ดังนั้นคำถามคือ 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
ฯลฯ สำหรับฟังก์ชั่นการโทรกลับมองในการใช้ functors และใน C ++ 11 คุณ ยังสามารถเริ่มใช้สิ่งต่าง ๆ เช่นฟังก์ชั่นแลมบ์ดา