Podczas modelowania obiektu za pomocą dzieci często dołącza się dzieci za pomocą kompozycji jako członka klasy nadrzędnej. Czasami jednak dzieci muszą powiedzieć rodzicowi coś, muszą wywołać funkcję rodzica. Jak można to osiągnąć za pomocą C ++? Niektóre opcje to:
Ustaw klasę nadrzędną na globalną, aby obiekty potomne mogły wywoływać funkcje składowe obiektu nadrzędnego.
Wstrzyknij obiekt nadrzędny jako wskaźnik lub odnośnik do każdego obiektu podrzędnego. Następnie, gdy dziecko musi coś powiedzieć obiektowi nadrzędnemu, zawsze może to zrobić, ponieważ ma zmienną składową, której może użyć.
Jakie są inne metody na to? Czy istnieje ogólny wzór lub nazwa tego rodzaju rzeczy?
Zauważ, że interesują mnie pomysły i rozwiązania w C ++, ponieważ szczegóły będą inne w innych językach obiektowych. Na przykład punkt 2 powyżej wspomina o „wskaźnikach lub referencjach” i oba są możliwe tylko w C ++. C ++ ma funkcje językowe, które nie są obecne w innych językach, dlatego implementacje rozwiązania problemu potencjalnie będą zawierać te cechy językowe, dzięki czemu rozwiązanie będzie inne niż to, co ktoś może wymyślić w innym języku.
delegate
wystarczy proste ?