Listener 클래스가 있다고 가정 해보십시오.이 경우 포인터가 예상 한 것과 다를 수 있습니까?
클래스 A와 클래스 M 모두에서 수신기 클래스를 구현합니다. 클래스 A에는 4 개의 M이 있습니다.
각 M에는 A가 아닌 A가 리스너 기본 클래스로 있습니다. (그래서 M은 A에 대해 아무 것도 모르기 때문에 A가 내려졌다.)
A가 M 중 하나에서 메시지를 가져 오면 어떤 M이 메시지를 보냈는지 알 수 있어야합니다.
따라서 Listener 클래스의 모든 메서드에는 Listener * 매개 변수가 있습니다.
그래서 나는 이런 식으로 뭔가가있는 경우 :
그래서 기본적으로 내가 부탁 해요 무엇void A::someListenerMethod(Listener* l, MsgEnum msg)
{
if(l == m_mInstance[0])
{
//will this work if the caller was indeed the M instance in question?
}
}
입니다, 내가 그들을 비교하기 전에 M의 청취자를 다운 캐스트해야합니까?
때때로 C++은 다중 상속을 위해 하위 클래스에 대해 별도의 객체를 만들 것이라고 읽었습니다. 이 경우에는 다중 상속이 없지만 이것이 제대로 작동하는지 확인하고자합니다.
감사합니다.