c++ - typedef declared in header file not available in source file -
मेरे पास typedef
निजी में:
सेक्शन।
typedef int inttest;
मेरी स्रोत फाइल में हेडर फाइल शामिल है, फिर भी जब स्रोत फ़ाइल में टाइपिंगफ़िफ़ का उपयोग करने की कोशिश करते हैं तो
intteest myclass :: foo () { }
मुझे त्रुटि मिलती है:
त्रुटि: 'inttest' एक प्रकार का नाम नहीं है
क्यों इस? क्या मुझे स्रोत फ़ाइल में typedef
भी घोषित करने की आवश्यकता है?
पहले सभी प्रकार के टाइप-अप को कक्षा के दायरे में परिभाषित किया गया है। तो कंपाइलर टाइप-फेफ की परिभाषा नहीं पा सकता है, यदि इसे अयोग्य नाम के रूप में वापसी प्रकार के रूप में उपयोग किया जाता है। आप उदाहरण के लिए लिख सकते हैं
myclass :: inttest myclass :: foo () {}
हालांकि, कंपाइलर एक त्रुटि जारी करेगा क्योंकि टाइपफीफ़ निजी के रूप में परिभाषित।
संपादित करें: मुझे क्षमा करें।
फ़ंक्शन को कॉल करने वाले कोड में आपको
myclass a लिखने की आवश्यकता होगी; Int i = a.foo ();
या
<पूर्व> myclass a; ऑटो i = a.foo ();
आप लिख नहीं सकते
myclass a; Myclass :: inttest i = a.foo ();
Comments
Post a Comment