void foo(int)
{
}
class X
{
void foo()
{
}
void bar()
{
foo(42);
// error: no matching function for call to 'X::foo(int)'
// note: candidate is:
// note: void X::foo()
// note: candidate expects 0 arguments, 1 provided
}
};
सी ++ मुक्त फ़ंक्शन को कॉल करने में असमर्थ क्यों है (जो सही हस्ताक्षर वाला एकमात्र है)?सदस्य फ़ंक्शन छुपाएं फ़ंक्शन
इस मामले में, आप बाहरी foo तक पहुंचने के लिए ':: foo (42)' का उपयोग कर सकते हैं। [आइडिया डेमो] (http://ideone.com/6HljO)। लेकिन मुझे नामस्थानों के बारे में बहुत कुछ पता नहीं है। –
मैं इसे सी ++ की एक एचिलीस एड़ी मानता हूं। यह सामान्य अधिभारित मुक्त फ़ंक्शन नामों का असाधारण उपयोग करता है, जैसे कि इस्प्टी (चीज), जहां चीजों को दिए गए सामानों के लिए कई अधिभार हैं, जबकि चीज़ को अनुमति देना। (छूट) भी मौजूद है। बेवकूफ, दुर्भाग्यपूर्ण, गुंजाइश। – Mordachai