반응형
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 | #include <iostream> using namespace std; class Power{ int kick; int punch; public: Power(int kick=0, int punch=0){ this->kick=kick; this->punch=punch; } void show(); friend Power operator+(int op1, Power op2); //정수+객체를 위하여.. Power operator+(int op2); //객체+정수를 위하여.. }; void Power::show(){ cout<<"kick="<<kick<<","<<"punch="<<punch<<endl; } Power operator+(int op1,Power op2){ Power tmp; tmp.kick=op1+op2.kick; tmp.punch=op1+op2.punch; return tmp; } Power Power::operator+(int op2){ Power tmp; tmp.kick=this->kick + op2; tmp.punch=this->punch +op2; return tmp; } int main(void){ Power a(3,5), b,c; a.show(); b.show(); c.show(); b=2+a; c=a+3; a.show(); b.show(); c.show(); } | cs |
연산자 오버로딩을 클래스의 멤버 함수로 정의하는 방법과 외부 함수로 정의한 후 프렌드 선언을 해주는 방법이 있는데
operand(피연산자) 순서의 차이를 보인다. 만약 둘 중 한가지 방법만 쓴다면
프로그램 작성시 operand의 순서를 조심해야겠다.
반응형
'컴퓨터 & 프로그래밍 & 전자공학 > C++' 카테고리의 다른 글
생성자 중복 디폴트 매개 변수 (0) | 2017.12.25 |
---|---|
virtual 함수 (0) | 2017.11.23 |
모스 부호 (0) | 2017.11.09 |
Book 클래스 (1) | 2017.11.09 |
Accumulator 클래스 (0) | 2017.11.09 |