मैंने अज्ञात नामस्थान का परीक्षण करने के लिए नीचे इस डमी कोड को आजमाया।नामस्थानों का नाम एक ही चर के साथ नामित नेमस्पेस है
मैं मैं थोड़ा इस बारे में उलझन में हूँ निम्नलिखित उत्पादन
ctor 1
ctor 0
3
5
है।
- मैं संकलक से एक त्रुटि की उम्मीद कर कह रही है कि यह
a::m_a
के बारे में एक अस्पष्टता को हल नहीं कर सकता था। इसके बजाय यह हमेशा कम घोंसला को संदर्भित करता है। क्या यह हमेशा मामला है? सी ++ के नियम क्या हैं? - ऐसा लगता है कि संकलक फ़ाइल पर लिखे गए आदेश के बाद परिवर्तनीय सीएमओओबीजे बनाता है। क्या यह हमेशा मामला है?
main()
से सबसे नेस्टेडm_a
परिवर्तनीय तक पहुंचने का कोई तरीका है?
class CMyObj{
public:
CMyObj(int a){std::cout << "ctor " << a << std::endl; }
};
namespace a{
namespace{
int m_a=4;
int m_b=5;
CMyObj m_obj(1);
}
}
namespace a{
int m_a=3;
CMyObj m_obj(0);
}
int main(){
std::cout << a::m_a << std::endl; // which one?
std::cout << a::m_b << std::endl; // how this is possible?
return 0;
}
वह अंतिम वाक्य कुंजी है। धन्यवाद। –
हाय जीन! आपके रीप्ले के लिए बहुत बहुत धन्यवाद (कुछ देरी के साथ आ रहा है)! –