std::ostream
एक operator<<
अधिभार कि इस तरह के एक आप ने लिखा (number 11 in this list) के रूप में हस्ताक्षर के साथ एक समारोह के लिए एक सूचक प्राप्त करता है: endl
वास्तव में एक समारोह के समान है दिया गया कार्य स्वयं को तर्क के रूप में गुजर रहा है। यह अधिभार (कई समान अन्य लोगों के साथ) आपको धारा मैनिपुलेटर्स लागू करने की अनुमति देने के लिए है, यानी <<
के साथ स्ट्रीम में आप जो सामान आउटपुट करते हैं और वहां से स्ट्रीम की स्थिति बदलते हैं। उदाहरण के लिए, का (गलत) सर्वव्यापक std::endl
लागू किया जा सकता के रूप में
std::ostream &myendl(std::ostream &s) {
s<<'\n';
s.flush();
return s;
}
तो वास्तव में इस्तेमाल किया जा सकता है जो हमारे संस्करण के रूप में "नियमित" std::endl
:
std::cout<<"Hello, World!"<<myendl;
(वास्तविक क्रियान्वयन टेम्प्लेटेड है और थोड़ा और जटिल क्योंकि इसे व्यापक धाराओं के साथ भी काम करना है, लेकिन आपको विचार मिला है)
स्रोत
2015-11-28 12:18:22
एक अधिभारित 'ऑपरेटर <<' है जो एक फ़ंक्शन स्वीकार करता है और उसे कॉल करता है। यह कितना अस्पष्ट है? –
इस तरह से विभिन्न 'std :: endl' या 'std :: flush' अधिभार काम भी करते हैं। –