साक्षात्कारकर्ता ने मुझे इस तरह का एक कोड दिखाया और मुझसे पूछा कि क्या यह संकलित होगा, और मेरा तर्क दे। मैंने उसे बहुत निश्चित रूप से बताया कि यह संकलित नहीं होगा, क्योंकि 10 स्थिर है और आप एक गैर-कॉन्स्ट संदर्भ (जैसेबी = 10 संकलित नहीं करेंगे) के निरंतर असाइन नहीं कर सकते हैं, यह भी एक अस्थायी चर है और यह है कॉन्स को भी माना जाता है, फिर भी, आप एक कॉन्स वैरिएबल को संदर्भित करने के लिए गैर-कॉन्स्ट संदर्भ का उपयोग नहीं कर सकते हैं।यह संकलन क्यों करता है? उम्मीद है कि "एक गैर-कॉन्स्ट संदर्भ के लिए निरंतर असाइन नहीं किया जा सकता"
हालांकि, मेरे आश्चर्य के घर आने के बाद मैंने पाया कि यह सभी संभावित कंपाइलरों के साथ पूरी तरह से संकलित है। इसके अलावा, मुझे नौकरी नहीं मिली। मेरी समझ का क्या हिस्सा गलत हो गया?
class A {
int& a;
public:
A(int _a):a(_a) {}
};
int main() {
A a(10);
}
के स्टैक वैरिएबल को संदर्भित करता है, जिस स्थिति के लिए आप साक्षात्कार कर रहे थे? यदि यह सी ++ पार्सर बनाने के अलावा कुछ और है, तो मैं कहूंगा कि यह संभवतः हास्यास्पद है कि इसे इस तरह सी ++ के हर अस्पष्ट कोने को जानने की आवश्यकता है। – Mysticial
मुझे यह धारणा मिलती है कि साक्षात्कारकर्ता भाषा के अस्पष्ट कोनों को जानने और डिजाइन कौशल और सर्वोत्तम प्रथाओं पर पर्याप्त नहीं होने पर बहुत अधिक जोर देते हैं। –
@ मैस्टिसियल: यह नए डेवलपर्स के लिए एक आम गड़बड़ी है क्योंकि यह कोड पहले काम करेगा, लेकिन एक यादृच्छिक बिंदु (फ़ंक्शन कॉल के बाद) में विफल हो जाएगा। – Dani