सी में इनलाइन सदस्य फ़ंक्शन: एक गहरा गोता
इनलाइन सदस्य फ़ंक्शन क्लास परिभाषा में घोषित किए जाते हैं लेकिन क्लास बॉडी के बाहर लागू किए जाते हैं। हालांकि वे आम तौर पर हेडर फ़ाइल में रहते हैं, ऐसी स्थितियां हो सकती हैं जहां कार्यान्वयन को हेडर में रखना संभव नहीं है।
उस परिदृश्य पर विचार करें जहां क्लास ए में क्लास बी का एक उदाहरण शामिल है, और क्लास बी एक इनलाइन सदस्य घोषित करता है फ़ंक्शन getA() जो A का एक उदाहरण लौटाता है। एक सर्कुलर शामिल होने के कारण, हमें getA() के कार्यान्वयन को B.cpp फ़ाइल में स्थानांतरित करने के लिए मजबूर होना पड़ता है।
सवाल उठता है: क्या कंपाइलर इनलाइन getA()? सी एफएक्यू के अनुसार, इनलाइन फ़ंक्शन की परिभाषा हेडर फ़ाइल में होनी चाहिए, सिवाय इसके कि इसका उपयोग विशेष रूप से एकल .cpp फ़ाइल में किया जाता है। हमारे मामले में, परिभाषा B.cpp में है, जिसका अर्थ है कि getA() को B.cpp के भीतर इसके उपयोग के अलावा इनलाइन नहीं किया जाएगा।
इनलाइन कीवर्ड के महत्व के संबंध में, इसे केवल उपयोग करने की अनुशंसा की जाती है सर्वोत्तम प्रथाओं के लिए क्लास बॉडी के बाहर फ़ंक्शन परिभाषा में से एक।
जहां तक .cpp फ़ाइल में इनलाइन सदस्य फ़ंक्शन को परिभाषित करने के लिए एक वैकल्पिक दृष्टिकोण खोजने की बात है, दुर्भाग्य से, ऐसा कोई नहीं है हमारे ज्ञान से ज्ञात है। इनलाइनिंग करने के लिए कंपाइलर के लिए परिभाषा को हेडर फ़ाइल में रहना चाहिए।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3