साथ समारोह सूचक घोषित करने के लिए, मैं एक का उपयोग मामला था जो उनके द्वारा पूरी तरह से हल नहीं किया गया था; कार्यों के लिए संकेत का एक वेक्टर के लिए निम्न करें:
#include <iostream>
#include <vector>
#include <stdio.h>
#include <stdlib.h>
class A{
public:
typedef vector<int> (A::*AFunc)(int I1,int I2);
vector<AFunc> FuncList;
inline int Subtract(int I1,int I2){return I1-I2;};
inline int Add(int I1,int I2){return I1+I2;};
...
void Populate();
void ExecuteAll();
};
void A::Populate(){
FuncList.push_back(&A::Subtract);
FuncList.push_back(&A::Add);
...
}
void A::ExecuteAll(){
int In1=1,In2=2,Out=0;
for(size_t FuncId=0;FuncId<FuncList.size();FuncId++){
Out=(this->*FuncList[FuncId])(In1,In2);
printf("Function %ld output %d\n",FuncId,Out);
}
}
int main(){
A Demo;
Demo.Populate();
Demo.ExecuteAll();
return 0;
}
कुछ इस तरह उपयोगी है जब आप अनुक्रमित कार्यों की जरूरत है कि पैरामीटर वाक्य रचना और मदद सुझावों आदि संभवतः भी उपयोगी के साथ शादी करने के साथ एक कमांड दुभाषिया लिख रहे हैं मेनू में
मुझे पता है कि यह पुराना है, लेकिन मुझे '(ए। * ए.एक्स)()' के उपयोग को समझ में नहीं आता है। '(ए। * एक्स)()' क्यों काम नहीं करता है? –
@gau क्योंकि एक्स दायरे में नहीं है –
@gau मैंने इसे स्पष्ट करने के लिए अब माता-पिता को जोड़ा –