趣味としてNESエミュレーターを開発しています。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でラムダ関数などの使用を開始することもできます。