메시지 버스와 함께 사용중인 Message
구조가 있으며 메시지가있는 데이터를 보내고 싶습니다. 문제는 데이터가 유형이 다양하다는 것입니다. 어쩌면 하나의 메시지에 대해 나는 단지 하나의 int를 보내고 싶을 것이다. 그러나 다른 것에 대해서는 여러 개의 int, 문자열, 예를 들어 객체에 대한 포인터를 보내기를 원할 것이다. 나는 같은 것을 할 수있는 :STL 여러 유형의 값을 저장하는 컨테이너입니까?
struct Message {
std::map<int, int> intPayload;
std::map<int, std::string> strPayload;
short id;
};
을뿐만 아니라 추하고 더러운이, 그리고 아마도 공간을 낭비하지만 포인터와 같은 비교적 이국적인 데이터 형식을 전달하려면 그 고려하지 않습니다 예를 들어 클래스의 인스턴스에. 이것을 위해 무엇을 사용해야합니까?
기본 클래스와 가상 함수 상속 및 포인터를 사용하여 :
은 또한 정적 방문자를 사용할 수 있습니까? –
가능한 한 내 첫 번째 추측은 다형성이 될 것입니다. – DeiDei
@DeiDei 나는 약간 이해가되지만, 다형성은 클래스/구조체 상속과 관련이있다. 다형성이 어떻게 도움이 될까? – Accumulator