При моделюванні предмета з дітьми зазвичай включають дітей за складом як члена батьківського класу. Однак іноді діти повинні щось сказати батькові, вони повинні викликати функцію батька. Як це можна досягти за допомогою C ++? Деякі варіанти:
Зробіть батьківський клас глобальним, тому дочірні об’єкти зможуть викликати членські функції батьківського об'єкта.
Введіть батьківський об'єкт у вигляді вказівника чи посилання в кожен дочірній об’єкт. Тоді, коли дитині потрібно щось сказати батьківському об'єкту, він завжди може це зробити, оскільки він має змінну члена, яку він може використовувати.
Які ще методи цього робити? Чи є загальна модель дизайну чи назва цього виду?
Зауважте, що мене цікавлять ідеї та рішення C ++, оскільки деталі будуть відрізнятися в інших об'єктно-орієнтованих мовах. Наприклад, точка 2 вище згадує "покажчики або посилання", і обидва можливі лише в C ++. C ++ має мовні особливості, яких немає в інших мовах, тому реалізація рішення проблеми потенційно може включати ці мовні функції, роблячи рішення відмінним від того, що хтось може придумати іншою мовою.
delegate
?