कच्चे सूचक A*
और B*
के विभिन्न प्रकार के बीच एक कस्टम कनवर्टर (converter1<T>
और converter2
) को परिभाषित करने,
तो में सभी कार्यों (fa()
और fb()
) बनाने के क्या यह संभव है एक निश्चित वर्ग
उपयुक्त कनवर्टर (converter1<T>
या converter2
) का उपयोग करें?स्वचालित बुला कस्टम कनवर्टर ए * <-> बी *
संक्षेप में, मैं चाहता हूं कि प्रोग्राम A*
से B*
और इसके विपरीत मेरे कस्टम फ़ंक्शंस का उपयोग करना चाहता है।
मेरी इच्छा है कि यह मेरी सुविधा के लिए स्वचालित रूप से ऐसा करेगा। A1
, A2
, A3
और इतने पर -
class Manager{
void fb(B* b){ /** something complex */ }
void fa(A* a){ /** different thing complex */ }
void testCase(){
A* a= ... ;
fa(a);
fb(a); //automatic convert to B* using "converter2" (wish)
B* b= ... ;
fa(b); //automatic convert to A* using "converter1" (wish)
fb(b);
}
template<class T> T* converter1(B* b){ //hardcoded, non-static.
return this->getId<T>(b);
//^^^ just an example to show how custom it is,
// currently T=A
}
B* converter2(A* a){ //hardcoded
return a->getB();
//^^^ just an example to show how custom it is.
}
}
असली मामला कई A
है।
A
और B
एक दूसरे से नहीं व्युत्पन्न हैं।
मेरी इच्छा है कि एक तरीका है। मैं सूचक के निर्माता के बारे में सोचता हूं।
क्या ए और बी एक दूसरे से व्युत्पन्न हैं? –
नहीं, वे संबंधित वर्ग नहीं हैं। धन्यवाद, मैं भूल गया, मैं इसे प्रश्न में जोड़ दूंगा। – javaLover
संक्षिप्त उत्तर: नहीं, यह संभव नहीं है। –