मैं अपने अध्ययन के दौरान एक बहुत ही सरल कार्यक्रम में '< <', & ओवरलोड तैयार कर रही थी, मैं अपने कार्यक्रम के निम्नलिखित आश्चर्य की बात उत्पादन पाया।अधिक भार inserters और अजीब निर्गम ('20' और '020' के लिए)
#include<iostream>
#include<conio.h>
#include<string>
using namespace std;
class student
{
int age;
public:
student(){}
student(int a){age=a;}
friend ostream &operator<<(ostream &stream,student o);
};
/*operator overloaded in this block*/
ostream &operator<<(ostream &stream,student o)
{
stream<<o.age;
return stream;
}
int main()
{
student ob1(20),ob2(020);
cout<<ob1; /*will yield 20(as desired)*/
cout<<"\n"<<ob2; /*yielding 16(why so)*/
_getch();
return 0;
}
किसी भी explainations कृपया
0x20 के साथ भी प्रयास करें। आप आश्चर्यचकित होंगे। – Tom
HAHA ..... या मैं था ... बीटी पॉइंट एनड – nobalG
कॉन्स संदर्भ द्वारा छात्र पास करें। अन्यथा जब आप इसे फ़ंक्शन में पास करते हैं तो आप प्रतिलिपि बना रहे हैं। 'ओस्ट्रीम और ऑपरेटर << (ओस्ट्रीम और स्ट्रीम, छात्र ** कॉन्स और ** ओ) ' –