iostream
एक हेडर फ़ाइल है जो घोषणाओं और प्रोटोटाइप प्रदान करती है जो सी ++ मानक पुस्तकालय के हिस्से के लिए एक इंटरफेस हैं।
नहीं है बिंदु जहां #include <iostream>
बारे में आपके सिस्टम, एक फ़ाइल "iostream" (कोई विस्तार) कहा जाता है, जो की सामग्री को कॉपी कर रहे हैं और चिपकाया (#include
रों की पुनरावर्ती प्रसंस्करण के साथ) पर, है।
#include
निर्देश हमेशा हेडर फ़ाइलों की सामग्री में खींचते हैं, वे कभी भी "पुस्तकालय" नहीं जोड़ते हैं। शीर्षलेख फ़ाइलों में प्रायः घोषणाएं और प्रोटोटाइप होते हैं जो लाइब्रेरी के लिए एक इंटरफ़ेस होते हैं, लेकिन वास्तविक पुस्तकालय स्वयं लिंकर द्वारा आपके प्रोग्राम से जुड़े होते हैं, न कि संकलक। एक C++ प्रोग्राम को लिंक करते समय, लिंकर स्वचालित रूप से C++ मानक लाइब्रेरी को तब तक संलग्न करेगा जब तक कि आप इसे न कहें, इसलिए आपको इसके बारे में चिंता करने की आवश्यकता नहीं है।
इसी प्रकार, using namespace std
कथन लाइब्रेरी को जोड़ने का काम नहीं करता है।यह कथन केवल इतना बनाता है कि उदाहरण के लिए, cout
या string
उन्हें std::cout
और std::string
के रूप में योग्यता के बजाय लिख सकते हैं। यह किसी भी नामस्थान के लिए काम करता है, लेकिन आमतौर पर निराश होता है।
आपके द्वारा दिए गए तीन उदाहरणों के लिए, वे सभी आपको सी ++ मानक पुस्तकालय के iostream भाग का उपयोग करने के लिए आवश्यक परिभाषाएं और प्रोटोटाइप देते हैं, लेकिन (2) पसंद किया जाता है, (1) स्वीकार्य है, और (3) है पदावनत। (2) std::
उपसर्ग (अपने आप को उपयोग करने के लिए उपलब्ध चर नामों को कम करने की लागत पर) को छोड़ने में सक्षम होने की अतिरिक्त सुविधा देता है, और (3) "iostream.h" के बजाय "iostream.h" नामक एक अलग फ़ाइल शामिल है ", जो आम तौर पर एक ही बात है, लेकिन .h के साथ फ़ाइल प्री-स्टैंडर्ड सी ++ का अवशेष है और इसलिए भविष्य के कंपाइलरों में समर्थित नहीं हो सकता है।
स्रोत
2010-04-16 12:55:30
दूसरे कार्यक्रम में, मैंने नामस्थान शामिल नहीं किया है, तो क्या होगा? – siva
आपको लिखना होगा, उदाहरण के लिए, 'cout' के बजाय' std :: cout'। –
यह सिर्फ एक छात्र गृहकार्य की तरह दिखता है ... है ना? – ereOn