在业余时间,我正在开发NES模拟器作为一种爱好。我之所以使用C ++,是因为它是我最常使用,最常了解和最喜欢的语言。
但是,既然我在项目中取得了一些进步,我意识到我几乎没有使用C ++的任何特定功能,并且可以在普通C语言中完成并获得相同的结果。我不使用模板,运算符重载,多态性,继承。那你会说什么 我应该留在C ++还是用C重写?
我不会这样做来获得性能,它可能会产生副作用,但是想法是为什么在不需要C ++时为什么要使用C ++?
我正在使用的C ++的唯一功能是用于封装数据和方法的类,但是可以使用结构和函数来完成,我正在使用new和delete,但也可以使用malloc和free,我仅将继承用于回调,这可以通过指向函数的指针来实现。
请记住,这是一个业余项目,我没有截止日期,因此需要重写的开销时间和工作不是问题,也可能很有趣。那么,问题是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
,等回调函数,看进用仿函数,并且在C ++ 11,你也可以开始使用lambda函数之类的东西。