私はかなり長い間C++とJavaをプログラミングしてきましたが、一般的なC++アーキテクチャーに関するいくつかの質問があります。一般的なC++アーキテクチャ
私はJavaでプログラムを作成するときに、IterableやSerializableなどのインターフェイスを使用し、同様の命名規則と機能を持つ標準ライブラリを模倣しようとしています。しかし、C++では、STL規約を模倣しようとすると躊躇します(イテレータは例外です)。
私は(実装するために、以下の一般的な慣例です)以下の質問にそれを煮詰めてきました:
- アロケータ
- インターフェイス(純粋仮想メソッドのみを持つクラス)
- テンプレートの代わりに、抽象基底クラス
- 制限の投げ込みを制限する...
- ...クラスを持っていても、例外をスローすることができます(例えば、標準ストリームなど) 多かれ少なかれ、のためのtypedef、明白なタイプ(reference_type、pointer_type、VALUE_TYPE、...)
またはまったくまねるC++価値がないのはstdでの使用
ご意見ありがとうございます。
Hm。これは意味のある方法で答えるのが難しいです。あなたは本当に6つの大きな質問をしています。 <なぜあなたのSTLはを使用するのですか?これは、やりすぎ。私は、その過度に広い範囲のために、この質問を閉じるために投票しています。代わりにそれらの1つについて尋ねてみてください。 「なぜSTLはアロケータを使用するのですか?私は決してそれらを使用していませんし、なぜそこにいるのだろうかと思っています。 –
もし私がそれらを別の質問に分ければ、それらはすべて同じようになります: カスタムコンテナにアロケーターを使用するのが一般的な規則ですか? インターフェイスを使用するのが一般的な規則ですか?そんなこと...私自身のプロジェクトでは良い練習に従うことを好みます。それから私のプロジェクトから他の人へのジャンプは小さくなります。ですから、本当に私が知りたいのは、「STLスタイルのコーディングに従うのは良い習慣ですか?」ということです。 –