Derived
में template foo(T)
है। में foo()
के 2 अधिभार हैं।क्या कम से कम कार्यों के उत्तराधिकारी के लिए "उपयोग" कीवर्ड के लिए यह संभव है?
struct Base
{
void foo (int x) {}
void foo (double x) {}
};
struct Derived : Base
{
template<typename T> void foo (T x) {}
using Base::foo;
};
अब, जब foo()
Derived
वस्तु के साथ कहा जाता है; यदि लागू हो तो मैं केवल Base::foo(int)
का उपयोग करना चाहता हूं, अन्यथा इसे Derived::foo(T)
का आह्वान करना चाहिए।
Derived obj;
obj.foo(4); // calls B::foo(int)
obj.foo(4.5); // calls B::foo(double) <-- can we call Derived::foo(T) ?
संक्षेप में, मैं चाहता हूँ की एक प्रभाव:
using Base::foo(int);
क्या यह संभव है? ऊपर सिर्फ एक उदाहरण है।
आपके विचार के लिए: क्या इन सभी कार्यों का वास्तव में वही नाम होना चाहिए? –
@ क्रिस, हाँ। 'बेस' ऑब्जेक्ट्स के लिए, 'foo() '' int'/'double' पारित किया गया है। 'व्युत्पन्न' ऑब्जेक्ट्स के लिए 'foo() 'किसी भी प्रकार से गुजरता है लेकिन इसमें' foo (double)' के लिए अलग गणना होती है। यह सिर्फ एक उदाहरण है। – iammilind