<div><font face="Times New Roman" size="3"></font></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"> </div><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"></span> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"></font></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">#include</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(163,21,21);font-family:Consolas;font-size:9.5pt;"><iostream></span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"></span> <div></div></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"></font></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">using</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">namespace</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> std;</span> <div></div></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"></font></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">class</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(43,145,175);font-family:Consolas;font-size:9.5pt;">Cat</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">{</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span></span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">public</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">:</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span>Cat() :itsAge(0),itsWeight(0){}</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span>Cat(</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">int</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(128,128,128);font-family:Consolas;font-size:9.5pt;">age</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">, </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">int</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(128,128,128);font-family:Consolas;font-size:9.5pt;">weight</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">) :itsAge(</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(128,128,128);font-family:Consolas;font-size:9.5pt;">age</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">), itsWeight(</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(128,128,128);font-family:Consolas;font-size:9.5pt;">weight</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">){}</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"> <div> </div></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span></span><span lang="en-us" style="color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">int</span><span lang="en-us" style="color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> GetAge()</span><span lang="en-us" style="color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">const</span><span lang="en-us" style="color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">{ </span><span lang="en-us" style="color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">return </span><span lang="en-us" style="color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">itsAge; }</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span></span><span lang="en-us" style="background:rgb(192,192,192);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">int</span><span lang="en-us" style="background:rgb(192,192,192);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> GetWeight(){ </span><span lang="en-us" style="background:rgb(192,192,192);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">return</span><span lang="en-us" style="background:rgb(192,192,192);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> itsWeight; }</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"></font> </div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"> </font> <div class="MsoNormal" style="margin:0cm 0cm 0pt;"><span lang="en-us" style="background:#FFFFFF;color:#000000;font-family:Consolas;font-size:9.5pt;"><span> </span></span><span lang="en-us" style="background:#FFFFFF;color:#0000FF;font-family:Consolas;font-size:9.5pt;">void</span><span lang="en-us" style="background:#FFFFFF;color:#000000;font-family:Consolas;font-size:9.5pt;"> operator+(</span><span lang="en-us" style="background:#FFFFFF;color:#0000FF;font-family:Consolas;font-size:9.5pt;">const</span><span lang="en-us" style="background:#FFFFFF;color:#000000;font-family:Consolas;font-size:9.5pt;"> </span><span lang="en-us" style="background:#FFFFFF;color:rgb(43,145,175);font-family:Consolas;font-size:9.5pt;">Cat</span><span lang="en-us" style="background:#FFFFFF;color:#000000;font-family:Consolas;font-size:9.5pt;"> &);</span></div><font face="Times New Roman" size="3"> </font></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span></span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">friend</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(43,145,175);font-family:Consolas;font-size:9.5pt;">Cat</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> operator+(</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">const</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(43,145,175);font-family:Consolas;font-size:9.5pt;">Cat</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> &, </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">const</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(43,145,175);font-family:Consolas;font-size:9.5pt;">Cat</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> &);</span> <div></div></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"></font> </div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span></span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">private</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">:</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span></span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">int</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> itsAge;</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span></span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">int</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> itsWeight;</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">};</span> <div></div></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"></font></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"></span> <div> </div></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"></font></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(43,145,175);font-family:Consolas;font-size:9.5pt;">Cat </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">operator+(</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">const</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(43,145,175);font-family:Consolas;font-size:9.5pt;">Cat</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> & </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(128,128,128);font-family:Consolas;font-size:9.5pt;">lhs</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">, </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">const</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(43,145,175);font-family:Consolas;font-size:9.5pt;">Cat</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> & </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(128,128,128);font-family:Consolas;font-size:9.5pt;">rhs</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">)</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">{</span> <div></div></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"></font></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span></span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(43,145,175);font-family:Consolas;font-size:9.5pt;">Cat</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> temp;</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"></font></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span></span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">int</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> totalAge = </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(128,128,128);font-family:Consolas;font-size:9.5pt;">lhs</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">.GetAge() + </span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(128,128,128);font-family:Consolas;font-size:9.5pt;">rhs</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">.GetAge();</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span></span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">int</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> totalweight = </span><span lang="en-us" style="background:rgb(255,255,0);color:rgb(128,128,128);font-family:Consolas;font-size:9.5pt;">lhs</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">.GetWeight() + </span><span lang="en-us" style="background:rgb(255,255,0);color:rgb(128,128,128);font-family:Consolas;font-size:9.5pt;">rhs</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">.GetWeight();</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"></font></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"><span> </span></span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,255);font-family:Consolas;font-size:9.5pt;">return</span><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;"> temp;</span> <div></div></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"></font></div> <div class="MsoNormal" style="margin:0cm 0cm 0pt;"><span lang="en-us" style="background:rgb(255,255,255);color:rgb(0,0,0);font-family:Consolas;font-size:9.5pt;">}</span></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"><font face="Times New Roman" size="3"></font></div> <div align="left" class="MsoNormal" style="margin:0cm 0cm 0pt;text-align:left;"> </div> <div><font face="Times New Roman" size="3">디버그를 할때에 노란색친 두 부분에 대해서 아래와 같은 에러가 나오네요</font></div> <div><font face="굴림" size="3"></font> </div> <div>error C2662: 'int Cat::GetAge(void)' : cannot convert 'this' pointer from 'const Cat' to 'Cat &'<br>1> Conversion loses qualifiers</div> <div> </div> <div>operator+에서 두 매개변수에 '&'를 빼서 참조자가 아니게 해도 결과는 똑같구요</div> <div> </div> <div>'아무래도 상수형 객체인 lhs와 rhs가 GetWeight()를 호출할려고 할때 </div> <div>GetWeight는 비상수형 멤버 함수가 아니기 때문에 호출할수가 없다.</div> <div> </div> <div><strong>즉, 클래스의 상수형 객체는 상수형 멤버 함수만 호출할수있다.'</strong></div> <div> </div> <div> </div> <div>로 해석해야 되는것 같은데... 맞나요??</div> <div>책을 아무리 뒤져봐도 이런 상황은 안나오네요 ㅠㅠ</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.