Tôi đang phát triển trình giả lập NES như một sở thích, trong thời gian rảnh. Tôi sử dụng C ++ vì đây là ngôn ngữ tôi sử dụng chủ yếu, biết hầu hết và thích phần lớn.
Nhưng bây giờ khi tôi thực hiện một số tiến bộ trong dự án, tôi nhận ra rằng tôi không sử dụng hầu hết các tính năng cụ thể của C ++ và có thể đã thực hiện nó trong C đơn giản và nhận được kết quả tương tự. Tôi không sử dụng các mẫu, quá tải toán tử, đa hình, kế thừa. Vậy bạn sẽ nói gì? Tôi nên ở lại C ++ hay viết lại bằng C?
Tôi sẽ không làm điều này để đạt được hiệu suất, nó có thể là một tác dụng phụ, nhưng ý tưởng là tại sao tôi nên sử dụng C ++ nếu tôi không cần nó?
Các tính năng duy nhất của C ++ tôi đang sử dụng là các lớp để đóng gói dữ liệu và phương thức, nhưng điều đó cũng có thể được thực hiện với các cấu trúc và chức năng, tôi đang sử dụng mới và xóa, nhưng cũng có thể sử dụng malloc và miễn phí, và tôi sử dụng tính kế thừa chỉ cho các cuộc gọi lại, có thể đạt được với các con trỏ tới các hàm.
Hãy nhớ rằng, đó là một dự án sở thích, tôi không có thời hạn, vì vậy thời gian và công việc đòi hỏi phải viết lại không phải là một vấn đề, cũng có thể rất vui. Vậy, câu hỏi là C hay C ++?
I use C++ because is the language I use mostly, know mostly and like mostly.
Và đó là câu trả lời cho câu hỏi của bạn. Bạn chỉ nên chuyển đổi ngôn ngữ giữa dự án khi có vấn đề mà ngôn ngữ hiện tại của bạn không thể giải quyết. I don't use templates, operator overloading, polymorphism, inheritance.
Việc học và sử dụng các khái niệm sẽ có giá trị hơn nhiều so với việc chuyển sang C. Vì đây là một dự án sở thích, tại sao không sử dụng một vài thứ bạn chưa từng sử dụng trước đây? Bạn luôn có thể bắt đầu một dự án khác trong C và học ngôn ngữ, nhưng đối với dự án hiện tại của bạn, nó không có ý nghĩa để chuyển đổi.
std::shared_ptr
, std::unique_ptr
, boost::scoped_ptr
, std::vector
, std::deque
, std::map
, vv Đối với chức năng gọi lại, nhìn vào việc sử dụng functors, và trong C ++ 11, bạn cũng có thể bắt đầu sử dụng những thứ như hàm lambda.