さまざまなタイプのカメラがあるCameraクラスのGUIを定義する必要があります。したがって、これを行うには、さまざまな実装(Camera1、Camera2)に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]
コメントを追加