web-dev-qa-db-ja.com

Qtアプリケーションを作成するときは、Qt関数の実装、データ型、およびクラスが利用可能な場合は常にそれを優先することをお勧めします。

私はQtから始めたばかりですが、後で別のツールセットを使用することにした場合に備えて、アプリケーションをできるだけQtから分離したままにしておきたいと思っていますが、同時に、次のような決定をしたくありません最初から本当に私のアプリケーションを不自由にします。

Qtアプリケーションを作成するときに、利用可能な場合は常にQt実装を優先することをお勧めしますか?または、状況によっては、Qtに代替手段がある場合でも、標準のC++を使用するのが最善ですか?

以下を検討してください...

関数の実装:

Qt関数の実装を使用できる場合は常に使用することを優先する必要がありますか?たとえば、数学関数を見てみましょう...

  • powqPow
  • logqLn
  • 等...

データ型:

デフォルトよりも常にQtデータ型を優先する必要がありますか?

  • int32_tqint32
  • doubleqreal
  • 等...

オブジェクト:

STLの同等物よりも常にQtオブジェクトを優先する必要がありますか?

  • std::stringQString
  • std::vectorQVector

これらの各状況で、長所/短所は何ですか。何を獲得または失うのでしょうか?

使用するQtベースの関数/オブジェクトが多いほど、後でQt以外のものに切り替えるのが難しくなります。

3
tjwrona1992

C++標準に完全に同等のものがある場合(正確な幅の型や数学関数など)、QTを使用していないプロジェクトへの移植性は失われ、何も得られません。そして、人々は、QTに精通していない場合、その機能/タイプ/何が違うか、何が違うか疑問に思うかもしれません。

QStringQVectorのようなQTオブジェクトタイプを使用する理由は2つあります。

  1. 使用するC++ライブラリからの独立性。これは、QTより頻繁に重大な変更が予想され、更新を提供できない、または提供しない場合にのみ利点です。
  2. 使用する関数のインターフェースの遵守。

これら2つの点は、代わりに標準タイプを使用する場合とは逆に当てはまります。

5
Deduplicator