मैंने जावा से सी ++ में एक वैज्ञानिक सिमुलेशन प्लेटफॉर्म को परिवर्तित कर दिया है। मैंने पिछले कार्यान्वयन के जितना संभव हो सके डिजाइन को रखने की कोशिश की है। देर से बाध्यकारी के कारण जावा में, परिपत्र निर्भरताओं को रन टाइम पर हल किया जाता है। हालांकि, परिपत्र निर्भरताओं ने सी ++ में एक गड़बड़ी का नरक बनाया है।सी ++, आपसी जरूरतों वाले दो वर्ग
क्या कोई स्वचालित उपकरण है जिसमें सर्कुलर का विश्लेषण और संदर्भ शामिल है और संदर्भ? (विजुअल स्टूडियो 2010 केवल बकवास त्रुटियों की एक बड़ी सूची जारी करता है)।
मैंने जहां भी संभव हो आगे संदर्भों का उपयोग करने की कोशिश की है। हालांकि कुछ अवसरों में दोनों वर्गों को अन्य वर्ग की कार्यक्षमता की आवश्यकता होती है (यानी उन तरीकों पर कॉल करें जो आगे संदर्भ का उपयोग करना असंभव बनाता है)। ये जरूरत तर्क में मौजूद हैं और यदि मैं मूल रूप से डिजाइन को बदलता हूं तो वे वास्तविक दुनिया के अंतःक्रियाओं का प्रतिनिधित्व नहीं करेंगे।
हम दो वर्गों को कैसे कार्यान्वित कर सकते हैं जिन्हें एक-दूसरे के तरीकों और स्थिति की आवश्यकता होती है? क्या उन्हें सी ++ में लागू करना संभव है?
उदाहरण:
- उदाहरण 1: मैं एक वर्ग "विश्व" कहा जाता है जो प्रकार "एजेंट" की वस्तुओं बनाता है। एजेंट को अपने पर्यावरण की जानकारी प्राप्त करने के लिए विश्व विधियों को कॉल करने की आवश्यकता है। दुनिया को एजेंटों के माध्यम से पुन: प्रयास करने और अपनी "रन" विधि निष्पादित करने और उनकी स्थिति प्राप्त करने की आवश्यकता है (समस्या के इस खंड को हल करने के लिए स्थिति अद्यतन संभवतः विपरीत किया जा सकता है लेकिन रन विधि नहीं)।
- उदाहरण 2: एजेंट अपने "इरादों" का संग्रह बनाते हैं। प्रत्येक एजेंट को अपने इरादों के माध्यम से पुन: प्रयास करने और अद्यतन/अद्यतन/इरादे की स्थिति पढ़ने की आवश्यकता होती है। इरादों को एजेंट के माध्यम से पर्यावरण के बारे में जानकारी प्राप्त करने की भी आवश्यकता है (अगर सीधे "विश्व" के माध्यम से किया जाता है तो यह जटिल सर्कल बना देगा) और एजेंट की जानकारी भी।
आरेख नीचे वर्गों में से एक उप सेट दिखाता है, और अपने तरीके और गुण के कुछ:
यदि आपको त्रुटियों में समस्याएं हैं, तो आप हमेशा उन त्रुटियों वाले प्रश्न पोस्ट कर सकते हैं (verbatim कृपया) और कोई भी इसके साथ आपकी सहायता करने में सक्षम होगा। साथ ही, ये त्रुटियां आपके लिए बकवास हो सकती हैं, लेकिन किसी और के लिए नहीं। कुछ कोड देखे बिना सवालों का जवाब देना भी बहुत मुश्किल है, और इसके लिए मैं आपको http://sscce.org/ पढ़ने की सलाह देता हूं। –
जोआचिम, वे त्रुटियों के प्रकार हैं जो परिपत्र निर्भरता मामलों में उत्पन्न होते हैं। कक्षाओं की पहचान नहीं की जा सकती है। 'कोड' 1> ई: \ प्रोग्रामिंग \ cprojt \ actiondb11 \ actiondb \ base \ world.h (35): त्रुटि C2143: वाक्यविन्यास त्रुटि: '*' 1> ई: \ प्रोग्रामिंग \ cprojt \ actiondb11 \ actiondb \ base \ world.h (36): त्रुटि C2061: वाक्यविन्यास त्रुटि: पहचानकर्ता 'एजेंट' 1> ई: \ प्रोग्रामिंग \ cprojt \ actiondb11 \ actiondb \ base \ world.h (50): त्रुटि C2065: ' एजेंट ': अविकसित पहचानकर्ता – wmac
त्रुटियां पोस्ट करने से कोड पोस्ट करना अधिक सहायक है। पोस्टिंग * दोनों * सबसे अच्छा है। –