<div>#include <iostream></div> <div>using namespace std;</div> <div><br></div> <div>int & RefRetFuncOne(int &ref)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ref++;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return ref;</div> <div>}</div> <div>int main()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int num1=1;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int num2=RefRetFuncOne(num1);</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>num1 += 1;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>num2 += 100;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"num1 : "<< num1 <<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"num2 : "<< num2 <<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return 0;</div> <div>}</div> <div>이 함수는 참조자를 반환하고 있습니다 그걸 변수로 받고있구요</div> <div>아무런 이상없는 코드입니다</div> <div>제가 string 클래스를 만드는 과제를 하는중인데요 연산자오버로딩을 이용해 문자열 이어붙이기를 만드려고 합니다 (객체)+(객체)</div> <div><br></div> <div><br></div> <div> <div> <div>class String</div> <div>{</div> <div>private:</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>char str[20];</div> <div>public:</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>String() {}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>String(char *s)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>strcpy(str, s);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>String<font color="#ff0000">&</font> operator +(const String &s) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>String s3;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>s3 = strcat(str, s.str);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return s3;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>};</div></div> <div> <div>void main()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>String s1("string");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>String s2("class");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>String s;</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>s = s1 + s2;<span class="Apple-tab-span" style="font-size:9pt;line-height:1.5;white-space:pre;"> </span></div> <div>}</div></div> <div><br></div> <div>+ 함수 보시면 (빨간글씨) 참조자로 반환을 하고 있습니다. 그걸 다시 객체로 받구 있구요</div> <div>위에꺼는 되는데 왜 아래꺼는 안되는건가요 ㅠㅠ 저 참조자는 함수가끝나는 순간 메모리에서 사라지므로 값을 받아올수 없다고 하는데</div> <div>그럼 첫번째 코딩에서도 안되야 하는게 아닌가요 ㅠㅠ</div> <div><br></div> <div>그리고 strcat을 이용해 문자열 이어붙이기를 만드려고 하는데</div> <div>저기서 &이 기호만 빼면 맞는 코딩인가요??</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.