Tôi có một lớp cơ sở và các lớp học xuất phát từ nó. Lớp cơ sở Controllable
hoạt động như một giao diện cho vòng lặp đầu vào và các lớp khác xuất phát từ nó để có được vị trí trong vòng lặp đó để nhận các sự kiện như khi nhấn một phím.C++: Các chức năng ảo cần gọi cùng một mã?
class Controllable{
public:
virtual void setActive(bool state) { m_active = state; }
virtual void input(Event & e) =0;
private:
bool m_active;
};
class Button : public Controllable{
public:
void setActive(bool state){ /*do extra work*/ m_active = state; }
void input(Event & e) override;
};
Kể từ khi giao dịch Button
lớp với các sự kiện từ một hàng đợi sự kiện, đặt nó vào hoạt động (trong đó có nó ra khỏi vòng lặp đầu vào) có thể gây ra nó để bỏ lỡ sự kiện quan trọng như một chìa khóa là unpressed, vì vậy nó cần thêm để đưa nó vào trạng thái không hoạt động thân thiện nếu nó trở nên hoạt động trở lại sau.
Câu hỏi của tôi, những gì là cách tốt nhất để đảm bảo rằng setActive
luôn có tác dụng dự định chuyển đổi m_active
sang trạng thái đúng, trong khi cùng một lúc, không đòi hỏi các lớp thừa kế để xác định nó, trừ khi họ cần phải đính kèm thêm cần mã?
Bạn có ';' sau '} 'chức năng, xem cho họ. –
Mr.TAMER - đã được sửa! Tôi có một chút ngứa ngáy; ngón tay –