"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या इनलाइन सदस्य कार्यों को .cpp फ़ाइल में कार्यान्वित किया जा सकता है?

क्या इनलाइन सदस्य कार्यों को .cpp फ़ाइल में कार्यान्वित किया जा सकता है?

2024-11-18 को प्रकाशित
ब्राउज़ करें:679

 Can Inline Member Functions Be Implemented in a .cpp File?

सी में इनलाइन सदस्य फ़ंक्शन: एक गहरा गोता

इनलाइन सदस्य फ़ंक्शन क्लास परिभाषा में घोषित किए जाते हैं लेकिन क्लास बॉडी के बाहर लागू किए जाते हैं। हालांकि वे आम तौर पर हेडर फ़ाइल में रहते हैं, ऐसी स्थितियां हो सकती हैं जहां कार्यान्वयन को हेडर में रखना संभव नहीं है।

उस परिदृश्य पर विचार करें जहां क्लास ए में क्लास बी का एक उदाहरण शामिल है, और क्लास बी एक इनलाइन सदस्य घोषित करता है फ़ंक्शन getA() जो A का एक उदाहरण लौटाता है। एक सर्कुलर शामिल होने के कारण, हमें getA() के कार्यान्वयन को B.cpp फ़ाइल में स्थानांतरित करने के लिए मजबूर होना पड़ता है।

सवाल उठता है: क्या कंपाइलर इनलाइन getA()? सी एफएक्यू के अनुसार, इनलाइन फ़ंक्शन की परिभाषा हेडर फ़ाइल में होनी चाहिए, सिवाय इसके कि इसका उपयोग विशेष रूप से एकल .cpp फ़ाइल में किया जाता है। हमारे मामले में, परिभाषा B.cpp में है, जिसका अर्थ है कि getA() को B.cpp के भीतर इसके उपयोग के अलावा इनलाइन नहीं किया जाएगा।

इनलाइन कीवर्ड के महत्व के संबंध में, इसे केवल उपयोग करने की अनुशंसा की जाती है सर्वोत्तम प्रथाओं के लिए क्लास बॉडी के बाहर फ़ंक्शन परिभाषा में से एक।

जहां तक ​​.cpp फ़ाइल में इनलाइन सदस्य फ़ंक्शन को परिभाषित करने के लिए एक वैकल्पिक दृष्टिकोण खोजने की बात है, दुर्भाग्य से, ऐसा कोई नहीं है हमारे ज्ञान से ज्ञात है। इनलाइनिंग करने के लिए कंपाइलर के लिए परिभाषा को हेडर फ़ाइल में रहना चाहिए।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3