У меня есть структура Message
, которую я использую с шиной сообщений, и я бы хотел отправить данные с сообщениями. Проблема в том, что данные будут различаться по типу; возможно, для одного сообщения я просто хочу отправить один int, но для другого я хочу отправить несколько ints, строку, возможно, даже указатель на объект, например. Я мог сделать что-то вроде этого:Контейнер STL для хранения нескольких типов значений?
struct Message {
std::map<int, int> intPayload;
std::map<int, std::string> strPayload;
short id;
};
Но это не только некрасиво и нечистым, и, вероятно, тратит впустую пространство, но это не объясняет, если я хочу передать относительно экзотический тип данных как указатель например, к экземпляру класса. Что я должен использовать для этого?
Использование наследования и указатели на базовый класс и виртуальные функции? –
Мое первое предположение было бы полиморфизмом, если это возможно в вашей ситуации. – DeiDei
@DeiDei Я немного смущен, из моего понимания полиморфизм связан с наследованием класса/структуры, как здесь будет помогать полиморфизм? – Accumulator