void foo()
{
bar(); // error: ‘bar’ has not been declared
}
void bar()
{
}
namespace N
{
void foo()
{
N::bar(); // error: ‘bar’ is not a member of ‘N’
}
void bar()
{
}
}
class C
{
static void foo()
{
C::bar(); // works just fine
}
static void bar()
{
}
};
उनकी घोषणा के ऊपर कार्यों को कॉल करने के इस असंगतता के पीछे तर्क क्या है? मैं इसे कक्षा के अंदर कैसे कर सकता हूं, लेकिन नामस्थान के अंदर या वैश्विक दायरे में नहीं?उनकी घोषणा के ऊपर कॉलिंग फ़ंक्शंस
शायद, संकलक, जबकि 'सी' संकलक केवल एक बार गुजरता है, वर्ग घोषणा भीतर वर्ग विधि कार्यान्वयन के माध्यम से कई बार गुजरता है। कुछ विरासत हो सकती है, क्योंकि foo() अनिवार्य रूप से सी-फ़ंक्शन –
है और स्थिर शून्य foo से स्थिर को हटाने के बाद परिणाम क्या है ?? – perilbrain
@ अज्ञात, यह कुछ भी नहीं बदलता है – SingerOfTheFall