W wolnym czasie opracowuję emulator NES. Używam C ++, ponieważ jest to język, którego najczęściej używam, znam głównie i lubię najbardziej.
Ale teraz, kiedy poczyniłem pewne postępy w projekcie, zdaję sobie sprawę, że nie używam prawie żadnych konkretnych funkcji C ++ i mogłem to zrobić w zwykłym C i uzyskać ten sam rezultat. Nie używam szablonów, przeciążania operatora, polimorfizmu, dziedziczenia. Co byś powiedział? powinienem pozostać w C ++, czy przepisać go w C?
Nie zrobię tego, aby zwiększyć wydajność, może to być efektem ubocznym, ale chodzi o to, dlaczego powinienem używać C ++, jeśli go nie potrzebuję?
Jedyne cechy C ++, których używam, to klasy do enkapsulacji danych i metod, ale można to również zrobić za pomocą struktur i funkcji, używam nowych i usuń, ale równie dobrze mogę używać malloc i za darmo, i jestem używanie dziedziczenia tylko dla wywołań zwrotnych, które można osiągnąć za pomocą wskaźników do funkcji.
Pamiętaj, że to projekt hobbystyczny, nie mam żadnych terminów, więc czas i praca, które wymagałyby ponownego napisania, nie stanowią problemu, mogą być również zabawne. Pytanie brzmi C czy C ++?
I use C++ because is the language I use mostly, know mostly and like mostly.I to jest odpowiedź na twoje pytanie. Powinieneś przełączać języki tylko w połowie projektu, gdy występuje problem, którego twój obecny język nie może rozwiązać. I don't use templates, operator overloading, polymorphism, inheritance.O wiele cenniej byłoby uczyć się i używać pojęć, niż przejść do C. Ponieważ jest to projekt hobby, dlaczego nie skorzystać z kilku rzeczy, których wcześniej nie używałeś? Zawsze możesz rozpocząć inny projekt w języku C i nauczyć się języka, ale w przypadku bieżącego projektu nie ma sensu się przełączać.
std::shared_ptr, std::unique_ptr, boost::scoped_ptr, std::vector, std::deque, std::map, itd. Dla funkcji zwrotnych, spójrz do wykorzystania funktorów, aw C ++ 11, ty może również zacząć korzystać z funkcji takich jak funkcje lambda.