code/C++
[c++] 연산자 함수
shallot
2017. 4. 20. 14:15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #include<iostream> #include<cstring> #pragma warning(disable:4996) using namespace std; class A{ int a; public: A(int a=1){ this->a=a; } void setA(int a){ this->a=a; } int getA()const{ return a; } /*int operator+(const A &bb){ return a+bb.a; }*/ int operator+(int a){ return this->a+a; } friend ostream& operator<<(ostream &out,const A &aa); friend istream& operator>>(istream &in, A &aa); }; //int operator+(const A &aa,const A &bb){ //return aa.getA()+bb.getA(); //} //int operator+(int a,const A &aa){ //return a+aa.a; //} ostream& operator<<(ostream &out,const A &aa){ out<<aa.a; return out; } istream& operator>>(istream &in,A &aa){ in>>aa.a; return in; } void main(){ A aa; A bb(9); //cout<<aa.getA()+bb.getA()<<endl; //cout<<aa+bb<<endl;//aa.operator+(bb)//내부 //operator+(aa,bb)//외부 //cout<<aa+40<<endl;//멤버함수 //cout<<40+aa<<endl;//외부함수->friend써야함 cout<<aa;//operator<<(cout,aa); cout<<bb; cout<<aa<<bb<<endl;//void형이면 aa까지 가고 void<<bb로 인식됨. cin>>aa>>bb;//100,200 cout<<aa<<bb; } |