क्या इस कोड के साथ गलत है, कारण है कि मैं गलत जवाब मिलता है:सी ++ निर्माता: कचरा जबकि स्थिरांक संदर्भ का आरंभीकरण
class X
{
private:
const int a;
const int& b;
public:
X(): a(10) , b(20)
{
// std::cout << "constructor : a " << a << std::endl;
// std::cout << "constructor : b " << b << std::endl;
}
void display()
{
std::cout << "display():a:" << a << std::endl;
std::cout << "display():b:" << b << std::endl;
}
};
int
main(void)
{
X x;
x.display();
return 0;
}
ऊपर कोड मुझे परिणाम दे देंगे के रूप में
display():a:10
display():b:1104441332
लेकिन यदि मैं डिफ़ॉल्ट कन्स्ट्रक्टर के अंदर 2 लाइनों को टिप्पणी करता हूं तो यह मुझे उचित परिणाम देता है जो
constructor : a 10
constructor : b 20
display():a:10
display():b:20
कृपया मदद करें, धन्यवाद
आपके उत्तर के लिए धन्यवाद। जो परिणाम बताता है। लेकिन क्या मुझे पता चलेगा कि बी को कैसे शुरू किया जाए? –
@ विवेकबास्पा: क्या यह कुछ वैरिएबल का संदर्भ देता है, जैसा कि आप चाहते हैं। या, बस इसे 'ए' जैसे मान बनाएं। –
@ विवेकबास्पा यह एक 'int' है, इसलिए आप शायद यह किसी भी तरह से संदर्भ नहीं चाहते हैं। 'int' की प्रतिलिपि बनाने की तरह स्नॉट महंगा है। – Borealid