हर भाषा में - अंतिम बाइनरी कोड बनाने के लिए दो चरण होते हैं - संकलन और लिंकिंग (निश्चित रूप से, वहाँ लोड हो रहा है लेकिन इसका यहाँ बहुत प्रभाव नहीं है)। संकलन के समय किसी को उचित स्थान पर केवल हुक (कार्यों के विनिर्देशन जिसे कहा जाएगा) कहा जाना चाहिए। दोनों वास्तविक कोड उपलब्ध होने पर लिंकर वास्तव में उनका साथ देता है। अभी तक C ++ और Java में कोई अंतर नहीं है।
वहाँ है तथापि के लिए सी ++ घोषणा और परिभाषा अलग है करने के लिए एक की जरूरत है,,। यदि आप हेडर में कार्यान्वयन को बनाए रखते हैं, और यदि हेडर फ़ाइल बदलता है, तो कोड जो इसके साथ जुड़ा हुआ है, उसे पुनः प्राप्त करने की आवश्यकता है। जैसे कि यदि परिभाषा अलग फ़ाइल में है, तो कोड को केवल पुनः लिंक करने की आवश्यकता है।
यह समझें कि C ++ में स्थैतिक लिंकिंग का विकल्प है, जिसका अर्थ है कि कॉलिंग एप्लिकेशन के साथ ऑब्जेक्ट कोड तय हो गया है। कृपया ध्यान दें कि C और C ++ दोनों में, हेडर फ़ाइल में प्रोग्रामिंग करना या #include करना भी अमान्य नहीं है। इसका केवल यह अर्थ है कि आपको इन ऑब्जेक्ट फ़ाइलों के साथ लिंक करने के तरीके के बारे में परेशान करने की आवश्यकता है।
जावा की स्थिति बहुत अलग है। प्रत्येक वर्ग फ़ाइल .class फ़ाइल के साथ संकलित की जाती है। वास्तव में, कोलर क्लास फ़ंक्शन संकलन की आवश्यकता होती है जो कि .class फ़ाइल में हेडर सेक्शन के रूप में प्रस्तुत किया जाता है। हालाँकि, Java फाइनल में लिंकिंग केवल रनटाइम (वर्चुअल मशीन) के अंदर ही की जाती है, जो कि क्लास फाइल के बाइट कोड के विनिर्देशन के साथ होती है।
यह और यह देखें