आपका सहकर्मी गलत है, सामान्य तरीका है और हमेशा हेडर में .cpp फाइलें (या जो भी एक्सटेंशन आपको पसंद है) और घोषणाओं में कोड डालना है।
हेडर में कोड डालने के लिए कभी-कभी कुछ योग्यता होती है, यह कंपाइलर द्वारा अधिक चतुर इनलाइनिंग की अनुमति दे सकता है। लेकिन एक ही समय में, यह आपके संकलन समय को नष्ट कर सकता है क्योंकि सभी कोड को हर बार इसे संकलक द्वारा शामिल किए जाने पर संसाधित करना पड़ता है।
अंत में, जब सभी कोड हेडर होते हैं, तो अक्सर परिपत्र वस्तु संबंध (कभी-कभी वांछित) होना कष्टप्रद होता है।
निचला रेखा, आप सही थे, वह गलत है।
संपादित करें: मैं आपके प्रश्न के बारे में सोच रहा हूं। नहीं है एक मामले में जहां वह क्या कहते हैं सच है। टेम्पलेट्स। कई नए "आधुनिक" पुस्तकालय जैसे कि बूस्ट का भारी उपयोग करते हैं और अक्सर "हेडर केवल" होते हैं। हालांकि, यह केवल टेम्प्लेट से निपटने के दौरान किया जाना चाहिए क्योंकि यह उनके साथ काम करते समय ऐसा करने का एकमात्र तरीका है।
संपादित करें: कुछ लोग थोड़ा और स्पष्टीकरण चाहते हैं, यहां "हेडर ओनली" कोड लिखने के डाउनसाइड पर कुछ विचार दिए गए हैं:
यदि आप चारों ओर खोज करते हैं, तो आप काफी लोगों को बढ़ावा देने से निपटने के लिए संकलन समय को कम करने का एक तरीका खोजने की कोशिश करेंगे। उदाहरण के लिए: बूस्ट एसियो के साथ संकलन के समय को कैसे कम किया जाए , जो कि एक 1K फाइल के 14 के संकलन को बढ़ावा देने के साथ देख रहा है। 14s "विस्फोट" नहीं लग सकते हैं, लेकिन यह निश्चित रूप से विशिष्ट की तुलना में बहुत लंबा है और काफी जल्दी जोड़ सकता है। जब एक बड़ी परियोजना के साथ काम कर रहे हैं। हैडर केवल पुस्तकालयों का संकलन समय को काफी औसत दर्जे से प्रभावित करता है। हम इसे सहन कर लेते हैं क्योंकि बढ़ावा इतना उपयोगी है।
इसके अतिरिक्त, कई चीजें हैं जो केवल हेडर में नहीं की जा सकती हैं (यहां तक कि बढ़ावा भी है पुस्तकालयों को आपको कुछ भागों जैसे कि थ्रेड्स, फाइलसिस्टम, आदि के लिए लिंक करने की आवश्यकता है)। एक प्राथमिक उदाहरण यह है कि आप हेडर में केवल एफबीआई (जब तक कि आप एक एकलता है कि विलोम का सहारा नहीं लेते हैं) में साधारण वैश्विक ऑब्जेक्ट नहीं हो सकते क्योंकि आप कई परिभाषा त्रुटियों में चलेंगे। नोट: C ++ 17 के इनलाइन चर भविष्य में इस विशेष उदाहरण को उल्लेखनीय बना देंगे।
अंतिम बिंदु के रूप में, हेडर केवल कोड के उदाहरण के रूप में बढ़ावा देने का उपयोग करते समय, एक विशाल विवरण अक्सर छूट जाता है।
बूस्ट लाइब्रेरी है, यूजर लेवल कोड नहीं। इसलिए यह अक्सर नहीं बदलता है। उपयोगकर्ता कोड में, यदि आप सब कुछ हेडर में रखते हैं, तो हर छोटे से बदलाव के कारण आपको पूरी परियोजना को फिर से स्थापित करना पड़ेगा। यह समय का एक अपव्यय है (और संकलन के संकलन से परिवर्तित नहीं होने वाले पुस्तकालयों के लिए मामला नहीं है)। जब आप हेडर / स्रोत और बेहतर अभी तक के बीच चीजों को विभाजित करते हैं, तो इसमें शामिल करने के लिए आगे की घोषणाओं का उपयोग करें, आप एक दिन में जोड़े जाने पर घंटों को फिर से सहेज सकते हैं।