c++ - Inclusion problem -
मेरे पास इसमें एक समावेश पैटर्न है:
/ * * Class1.h * / #ifndef CLASS1_H_ #define CLASS1_H_ #include "Class2.h" नामस्थान कक्षा 1_नामस्थान {वर्ग वर्ग 1 {क्लास 2 * क्लास 2 एपीटर; शून्य वर्ग 1_मम्बर () {(* क्लास 2_पीट्रर)। क्लॉस 2_मैथ (); }}; } #endif / * CLASS1_H_ * / / * * Class2.h * / #ifndef CLASS2_H_ #define CLASS2_H_ # शामिल "कक्षा 1 एच" कक्षा कक्षा 2 {क्लास 1_नामस्थान :: क्लास 1 कक्षा 2_डेटा; सार्वजनिक: शून्य वर्ग 2_म्यथा () {}; }; #endif / * CLASS2_H_ * / / * * main.cpp * / #Include "Class1.h" एंट मुख्य () {वापसी 0; }
हालांकि, यह त्रुटि की ओर जाता है "'वर्ग 1_नामस्थान' एक प्रकार का नाम नहीं है।"
क्या यह त्रुटि मेरे इनवर्न्स के आदेश के कारण होती है?
कुछ संभावित समाधान क्या हैं? मैं अपनी समस्या को सुलझाने के बारे में आगे की घोषणाओं के बारे में संदिग्ध हूं।
कक्षा 1 को कक्षा 2 को शामिल करने की आवश्यकता नहीं है। / P>
जब आपके पास परस्पर निर्भरता है (जो आप नहीं करते - आप सिर्फ 2 में 1 शामिल नहीं कर सकते हैं), तो आप आम तौर पर इसके समावेशन के बजाय अग्रेषण घोषणाओं का उपयोग कर हल कर सकते हैं।
उदाहरण के लिए, हम कहते हैं कि कक्षा 1 इस तरह दिखता है
# "वर्ग 2 एच" नाम स्थान कक्षा 1_नामस्थान {वर्ग 1 {क्लास 2 * वर्ग 2; }; }
आपको लगता है कि आपको इसमें शामिल करने की ज़रूरत है, तो आप इसके बजाय ऐसा कर सकते हैं:
वर्ग Class2; नाम स्थान कक्षा 1_नामस्थान {वर्ग 1 कक्षा {क्लास 2 * क्लास 2; }; }
आपसी समावेश को तोड़ने के लिए।
Comments
Post a Comment