c++공부

1205 core요약 1교시

JaeHyunShin 2019. 12. 5. 15:56

예제 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 해결

 

 

error 해결 2

전역함수를 클래스의 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