このような datacontainertype がいくつかありますが、内容が異なります。
struct containerRequest
{
uint8_t data1
uint8_t data2
};
struct containerResponse
{
uint8_t data1;
uint8_t data2;
};
union myType
{
containerRequest Request;
containerResponse Response;
};
ここで、抽象インターフェイスを作成して、このすべてのインターフェイスにこのような MyDatatype があることを確認したいと思います
class IMyInterface
{
public:
union myType
{
X Request;
Y Response;
};
bool IsMyType(myType& data) = 0;
void DoThings(myType& data) = 0;
};
テンプレートを使用することを考えましたが、これは私のコードの残りの部分にブレーキをかけます:
template <typename X, typename Y>
class IMyInterface
{
...
}
しかし、これは私のコードの残りの部分を壊します。
さまざまなコンテナーのコレクションがあるため:
void addContainer(IMyInterface& data)
{
collection.push_back(&data);
}
インターフェイス g++ で Templates を使用すると、テンプレートのタイプを指定する必要があります。
コレクションの型を特定する必要なく、派生クラスで X と Y を定義するにはどうすればよいですか?