निम्न कोड पर विचार करें:क्या सी ++ में विधि कॉल प्रेषक बनाना संभव है?
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");
}
प्रश्न यह है कि प्रेषक को कैसे कार्यान्वित किया जाए। मुझे कोई फर्क नहीं पड़ता कि एक्स और वाई कुछ से विरासत में हो सकते हैं, लेकिन डिस्पैचर को आगे के ग्राहकों को अनुमति देना चाहिए (न केवल एक्स और वाई)। और यदि संभव हो तो मैं शून्य * पॉइंटर्स से बचना चाहता हूं :)
क्या आपके पास बूस्ट लाइब्रेरी तक पहुंच है? –
क्या आप कृपया स्पष्टीकरण दे सकते हैं "समस्या पॉइंटर्स या फ़ैक्टर को रखते हुए डेटा संरचना का प्रकार है।" –
मैं इसे std :: tr1 :: mem_fun टेम्पलेट के साथ कार्यान्वित करने का प्रयास कर रहा था। लेकिन परिणाम का प्रकार पैरामीटर के प्रकार के अंदर था। तो मैं इसे एक विषम वेक्टर नहीं बना सका। –