A라는 클래스에서 B라는 클래스로 복사를 하려고 하는데요 아래와 같이 생성자를 만들었는데 값이 자꾸 A나 B클래스를 수정하면 값이 같이 바뀌네요 어디가 잘못된걸까요?
Item(const Item &tempClass) { setCnt(tempClass.cnt); // setInfo함수는 setInfo(int Cnt){cnt = Cnt;} 와 같이 되어있습니다 }
1. Item의 멤버 필드가 cnt 뿐인가요?
2. 복사 생성자라면 일반적으로 const Item &tempClass와 같이 파라미터를 받을텐데 왜 포인터를 받았죠? 이러면 컴파일러가 쥐도새도 모르게 (얕은 복사를 하는) 디폴트 복사 생성자를 만들어줍니다.
그리고 cnt 말고도 몇개 있는데 굳이 필요 없다 생각해서 생략했습니다 복사해서 쓰다가 잘못한거같네요 ㅎ;; &사용해서 했었습니다
.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
1. Item의 멤버 필드가 cnt 뿐인가요? 2.
1. Item의 멤버 필드가 cnt 뿐인가요?
2. 복사 생성자라면 일반적으로 const Item &tempClass와 같이 파라미터를 받을텐데 왜 포인터를 받았죠?
이러면 컴파일러가 쥐도새도 모르게 (얕은 복사를 하는) 디폴트 복사 생성자를 만들어줍니다.
복사해서 쓰다가 잘못한거같네요 ㅎ;;&사용해서
그리고 cnt 말고도 몇개 있는데
굳이 필요 없다 생각해서 생략했습니다
복사해서 쓰다가 잘못한거같네요 ㅎ;;
&사용해서 했었습니다
.
.
댓글 달기