タグ付けされた質問 「pimpl-idiom」

11
pImplイディオムは実際に実際に使用されていますか?
私はHerb Sutterの「Exceptional C ++」という本を読んでいます。その本で、pImplイディオムについて学びました。基本的には、のprivateオブジェクトの構造を作成し、classそれらを動的に割り当てて、コンパイル時間を短縮します(また、プライベート実装をより適切に非表示にする)。 例えば: class X { private: C c; D d; } ; 次のように変更できます: class X { private: struct XImpl; XImpl* pImpl; }; CPPでの定義: struct X::XImpl { C c; D d; }; これはかなり興味深いようですが、これまでこの種のアプローチを見たことがありません。これまでに取り組んだ企業や、ソースコードを見たオープンソースプロジェクトでも見たことがありません。それで、このテクニックが実際に実際に使用されているのだろうか? どこでも使用できますか、それとも注意して使用しますか?また、この手法は、パフォーマンスが非常に重要な組み込みシステムでの使用をお勧めしますか?
165 c++  oop  pimpl-idiom 

10
PimplイディオムとPure仮想クラスインターフェイス
プログラマーがPimplイディオムまたは純粋な仮想クラスと継承のどちらを選択するのかを考えていました。 Pimplイディオムには、各パブリックメソッドとオブジェクト作成のオーバーヘッドごとに1つの明示的な間接指定が付属していることを理解しています。 一方、純粋仮想クラスには、継承する実装のための暗黙の間接指定(vtable)が付属しており、オブジェクト作成のオーバーヘッドがないことを理解しています。 編集:しかし、外部からオブジェクトを作成する場合は、ファクトリが必要です 純粋な仮想クラスがpimplイディオムより望ましくない理由は何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.