class Room{
public:
void ColorRoom(){};
};
class House{
public:
Room* GetRoom(){return &m_room;}
private:
Room m_room;
};
1) Phòng không thể tồn tại mà không có nhà, căn nhà "có phòng". (thành phần)
2) Một cách khác để tô màu phòng sẽ là có một phương pháp trong Nhà mà sẽ gọi phương pháp ColorRoom trong phòng nhưng sau đó điều này là nhiều phái đoàn. (tôi muốn tránh điều này)
Cách duy nhất tôi thấy là ở trên nhưng có vẻ như quay lại tham chiếu đến thành viên riêng tư đang vi phạm OOP. Đây có phải là thiết kế tốt không?Thành phần tinh khiết có phá vỡ các khái niệm OOP không?
Tính năng này hoạt động tốt và giải thích ngắn gọn, xem câu trả lời của tôi. –
Lưu ý rằng 'virtual' đề cập đến * ghi đè * và không * quá tải *. – Dario
Bạn có thể ghi đè lên một hàm không thừa hưởng? Thứ hai, nếu người dùng muốn sửa đổi phòng có vẻ như họ cần phải gọi một phương pháp của Nhà mà lần lượt sẽ gọi phương pháp phòng, tương tự như đoàn. –