Khi mô hình hóa một đối tượng với trẻ em, thường bao gồm trẻ em thông qua thành phần, với tư cách là thành viên của lớp cha mẹ. Tuy nhiên, đôi khi trẻ cần nói với cha mẹ một cái gì đó, chúng cần gọi một chức năng của cha mẹ. Làm thế nào điều này có thể được thực hiện bằng C ++? Một số tùy chọn là:
Làm cho lớp cha toàn cầu do đó các đối tượng con sẽ có thể gọi các hàm thành viên của đối tượng cha.
Tiêm đối tượng cha như một, con trỏ hoặc tham chiếu, vào mọi đối tượng con. Sau đó, khi đứa trẻ cần nói với đối tượng cha mẹ một cái gì đó, nó luôn có thể làm như vậy bởi vì nó có một biến thành viên mà nó có thể sử dụng.
Phương pháp khác để làm điều này là gì? Có một mẫu thiết kế chung hoặc tên cho loại điều này?
Lưu ý rằng tôi quan tâm đến ý tưởng và giải pháp trong C ++ vì các chi tiết sẽ khác nhau trong các ngôn ngữ hướng đối tượng khác. Ví dụ: điểm 2 ở trên có đề cập 'con trỏ hoặc tham chiếu' và cả hai chỉ có thể có trong C ++. C ++ có các tính năng ngôn ngữ không có trong các ngôn ngữ khác, do đó việc triển khai giải pháp cho vấn đề sẽ có khả năng kết hợp các tính năng ngôn ngữ này làm cho giải pháp khác với những gì ai đó có thể nghĩ ra bằng ngôn ngữ khác.
delegate
là đủ?