Hãy xem xét một mã sau:Có thể tạo bộ điều phối cuộc gọi phương thức trong C++ không?
struct X {
void MethodX() {
...
}
};
struct Y {
void MethodY() {
...
}
};
void test() {
X x;
Y y;
Dispatcher d;
d.Register("x", x, &X::MethodX);
d.Register("y", y, &Y::MethodY);
d.Call("x");
d.Call("y");
}
Câu hỏi là cách triển khai Người điều phối. Tôi không quan tâm X và Y có thể kế thừa từ một cái gì đó, nhưng Dispatcher nên cho phép khách hàng hơn nữa (không chỉ X và Y). Và tôi muốn tránh con trỏ void nếu có thể :)
bạn có quyền truy cập vào thư viện tăng không? –
Bạn có thể vui lòng làm rõ "Vấn đề là loại cấu trúc dữ liệu giữ con trỏ phương pháp hoặc functors." –
Tôi đã cố gắng để thực hiện điều này với std :: tr1 :: mem_fun mẫu. Nhưng loại kết quả có bên trong loại tham số. Vì vậy, tôi không thể tạo ra một vectơ không đồng nhất có chứa nó. –