私はメッセージバスで使用しているMessage
構造を持っていて、メッセージでデータを送信したいと思います。問題は、データの種類が異なることです。多分1つのメッセージのために私はただ1つのintを送るつもりですが、別のもののために、私はいくつかのint、文字列、多分オブジェクトへのポインタさえ送るでしょう。私はこのような何か行うことができます:STL複数の値を格納するためのコンテナ?
struct Message {
std::map<int, int> intPayload;
std::map<int, std::string> strPayload;
short id;
};
をするだけでなく、この醜いと不潔で、おそらくスペースの無駄、それは私がポインタのような比較的エキゾチックなデータ型を渡す場合を考慮していません例えば、クラスのインスタンスに変換します。これには何を使用すべきですか?
基底クラスと仮想関数を継承し、ポインタを使用:
はまた、静的な訪問者を使用することができますか? –
私の最初の推測は、あなたの状況で可能な限り多形性です。 – DeiDei
@DeiDei私は少し混乱しています、私の理解から多形性はクラス/構造体の継承と関係していますが、多形性はどのようにここで助けますか? – Accumulator