एनबी यह एक सवाल नहीं है कि इनलाइन फ़ंक्शन का उपयोग कैसे करें या वे कैसे काम करते हैं, अधिक क्यों वे जिस तरह से किए जाते हैं।
वर्ग सदस्य फ़ंक्शन की घोषणा के रूप में एक फ़ंक्शन को परिभाषित करने की आवश्यकता नहीं है inline
, यह केवल फ़ंक्शन का वास्तविक कार्यान्वयन है। उदाहरण के लिए, शीर्ष लेख फ़ाइल में:
struct foo{
void bar(); // no need to define this as inline
}
तो क्यों एक वर्ग के इनलाइन कार्यान्वयन काम करता है हेडर फाइल में होना करने के लिए? मैं इनलाइन फ़ंक्शन .cpp
फ़ाइल को क्यों नहीं डाल सकता हूं ? अगर मैं .cpp
फ़ाइल में इनलाइन परिभाषा डालने की कोशिश कर रहा था, तो मुझे इसकी तर्ज पर एक त्रुटि मिलेगी:
error LNK2019: unresolved external symbol
"public: void __thiscall foo::bar(void)"
(?bar@foo@@QAEXXZ) referenced in function _main
1>C:\Users\Me\Documents\Visual Studio 2012\Projects\inline\Debug\inline.exe
: fatal error LNK1120: 1 unresolved externals
inline
जो एक परिभाषा पर प्रकट होती हैं लेकिन पूर्व घोषणा बनाम इसके विपरीत नहीं । यदि ऐसा है, तो यह मदद कर सकता है: stackoverflow.com/questions/4924912/…