예제 7-4 복습
+ OPERATOR 정의 통해 그 내부 구현해보기
C=A+B 오류 안나도록
a객체의 멤버변수인 kick punch근데 a의 kick punch값 수정중인데
이렇게 짜면 안되는 이유
Power Power::operator+(Power op2){
여기
제 3의 객체 하나 만들어준다
return *this;
}
operator+가 Power클래스 안에 구현되어 있다면
}
operator+(){
Power operator+(int op1,Power op2){
Power tmp;
tmp.kick=op1+op2.kick;
tmp.punch=op1+op2.punch;
return tmp;
}
error 해결
전역함수를 클래스의 friend함수로 만들어주면 된다
kick,punch가 private 이 default이기 때문
클래스 내부 함수가 아닌 전역함수
---------------
code 7-12
slide p 14참조하면 도움 돼
쉬워
freinds니까 파라미터 2개다
main 함수 Power a(3,5),b(4,6),c
tmp local만들고
tmp.punch=op1.punch+
단항연산자 ++를 프렌드로 작성하기
++a;
//a값ㅇ을 op1 파라미터하나러 받아 (0->1)
++a했을 때 ㄱ
저번시간이랑 같은 포인트가 p35에 등장
a의 내용이 op1에 넘어간다복사본이 넘어간다 // by value
-->원본 바뀌지 않아
Power& operator++(Power op){
}
클래스 멤버
시간 줄테니 구현해봐
//전위 ++연산자 함수 구현
Power& operator ++(Power& op){
op.kick++;
op.punch++;
return op;
}
//후위 ++연산자 함수 구현
Power operator +(Power& op,int x){
Power tmp=op;
op.kick++;
op.punch++;
return tmp;
}
전위//후위
'c++공부' 카테고리의 다른 글
1205 2교시 (0) | 2019.12.05 |
---|---|
10 31 수업내용 정리 (0) | 2019.10.31 |