一緒に使用されるC ++テンプレートポリモーフィズム

XaBerr

さまざまなタイプのカメラがあるCameraクラスのGUIを定義する必要がありますしたがって、これを行うには、さまざまな実装(Camera1Camera2)に1つのインターフェイスCameraを使用することが理にかなっているため、ポリモーフィズムを使用したいと思います問題は、実装が異なれば、テンプレートを使用するBufferCalculationsのタイプも異なるため、使用できませんそのようなものを使用する必要があるということですCamera* camera;Camera<unsigned char>* camera;

私は内部の多型を使用することができますどのような方法がありCameraGuiの私はテンプレートを持っているにもかかわらず、クラスBufferCalculationsクラスは?

template <typename T> class BufferCalculation {...}
template <typename T> class Camera { BufferCalculation<T> bufferCalculation; }
class Camera1 : public Camera<unsigned char> {}
class Camera2 : public Camera<unsigned short> {}
class CameraGui { Camera* camera; }
アミタボリー

それはあなたが何をしたいかによりますCameraGuiのテンプレートパラメータタイプに依存しない場合はCamera、次のようにすることができます。

class BasicCamera {...};
template <typename T> class BufferCalculation {...}
template <typename T> class Camera : public BasicCamera { BufferCalculation<T> bufferCalculation; }
class Camera1 : public Camera<unsigned char> {}
class Camera2 : public Camera<unsigned short> {}
class CameraGui { BasicCamera* camera; }

の操作がCameraGuiタイプ依存している場合は、それ自体をテンプレートクラスにするか、操作に非テンプレートタイプから派生したオブジェクトの階層を取得/返すようにすることができます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

C ++テンプレート、ポリモーフィズム、およびテンプレート共分散

分類Dev

ファイナルまたはテンプレートを使用した静的ポリモーフィズム?

分類Dev

ポリモーフィズムによるC ++テンプレートメソッドのオーバーロードとクラスアクセス

分類Dev

ポリモーフィズムとC ++のクラステンプレートからのメソッドのオーバーライド

分類Dev

異なるテンプレートタイプのサブクラスを持つポリモーフィズム

分類Dev

ポリモーフィズムに使用される参照とポインター?

分類Dev

C ++ STLコンテナのポリモーフィズム

分類Dev

C#:生成された部分クラス/プロパティにポリモーフィズムを追加する

分類Dev

スマートポインタによるポリモーフィズム

分類Dev

継承におけるJavaアップキャスティングまたはポリモーフィズム

分類Dev

セット<T>対セット<T、コンパレータ>(C ++ポリモーフィズム)

分類Dev

演算子+オーバーロードされたテンプレートクラスでのポリモーフィズムの使用。基本クラスを実装する方法は?

分類Dev

エンティティのポリモーフィズムに基づくイベントベースのゲームエンジン

分類Dev

@MappedSuperclassアノテーションを使用したHibernateエンティティポリモーフィズム

分類Dev

c ++デコレータパターン、テンプレートを使用した静的ポリモーフィズム、およびコールバックメソッドの登録

分類Dev

C ++のポリモーフィズム

分類Dev

ポリモーフィズムの使用?

分類Dev

テンプレートフィルターと一緒にフラスコスクリプトを使用する

分類Dev

同じ署名を持つメンバー関数を呼び出すために、関数テンプレートインスタンスの代わりに継承とポリモーフィズムを使用するのはなぜですか?

分類Dev

ポインターを使用せずにCでポリモーフィズムをシミュレートする

分類Dev

Haskellでサポートされているポリモーフィズムタイプはどれですか?

分類Dev

Scalaのネストされたポリモーフィズム

分類Dev

C ++でのアーリーバインディングとレイトバインディング+ポリモーフィズム

分類Dev

リポジトリパターンのジェネリックスによるポリモーフィズム

分類Dev

C#ポリモーフィズム/リスト

分類Dev

ポリモーフィズムとポインターを使用した構造体によるキャスト

分類Dev

カスタムタイプがバインドされたシェイプレスマッピングとサブタイプポリモーフィズム

分類Dev

C ++デザインとポリモーフィズム

分類Dev

c ++-メモリリークとポリモーフィズム

Related 関連記事

  1. 1

    C ++テンプレート、ポリモーフィズム、およびテンプレート共分散

  2. 2

    ファイナルまたはテンプレートを使用した静的ポリモーフィズム?

  3. 3

    ポリモーフィズムによるC ++テンプレートメソッドのオーバーロードとクラスアクセス

  4. 4

    ポリモーフィズムとC ++のクラステンプレートからのメソッドのオーバーライド

  5. 5

    異なるテンプレートタイプのサブクラスを持つポリモーフィズム

  6. 6

    ポリモーフィズムに使用される参照とポインター?

  7. 7

    C ++ STLコンテナのポリモーフィズム

  8. 8

    C#:生成された部分クラス/プロパティにポリモーフィズムを追加する

  9. 9

    スマートポインタによるポリモーフィズム

  10. 10

    継承におけるJavaアップキャスティングまたはポリモーフィズム

  11. 11

    セット<T>対セット<T、コンパレータ>(C ++ポリモーフィズム)

  12. 12

    演算子+オーバーロードされたテンプレートクラスでのポリモーフィズムの使用。基本クラスを実装する方法は?

  13. 13

    エンティティのポリモーフィズムに基づくイベントベースのゲームエンジン

  14. 14

    @MappedSuperclassアノテーションを使用したHibernateエンティティポリモーフィズム

  15. 15

    c ++デコレータパターン、テンプレートを使用した静的ポリモーフィズム、およびコールバックメソッドの登録

  16. 16

    C ++のポリモーフィズム

  17. 17

    ポリモーフィズムの使用?

  18. 18

    テンプレートフィルターと一緒にフラスコスクリプトを使用する

  19. 19

    同じ署名を持つメンバー関数を呼び出すために、関数テンプレートインスタンスの代わりに継承とポリモーフィズムを使用するのはなぜですか?

  20. 20

    ポインターを使用せずにCでポリモーフィズムをシミュレートする

  21. 21

    Haskellでサポートされているポリモーフィズムタイプはどれですか?

  22. 22

    Scalaのネストされたポリモーフィズム

  23. 23

    C ++でのアーリーバインディングとレイトバインディング+ポリモーフィズム

  24. 24

    リポジトリパターンのジェネリックスによるポリモーフィズム

  25. 25

    C#ポリモーフィズム/リスト

  26. 26

    ポリモーフィズムとポインターを使用した構造体によるキャスト

  27. 27

    カスタムタイプがバインドされたシェイプレスマッピングとサブタイプポリモーフィズム

  28. 28

    C ++デザインとポリモーフィズム

  29. 29

    c ++-メモリリークとポリモーフィズム

ホットタグ

アーカイブ