|
string string::operator+(const string &rhs) // 객체 + 객체를 구현하기 위해서 + 연산자를 재정의한 함수이다.
{
unsigned short totallen=itslen+rhs.getlen(); // totallen 변수가 좌우측 객체의 문자수를 합한값을 기억하고
string temp(totallen); // 전용 생성자를 호출(?) 하여 임시 객체를 만들고
for(unsigned short i=0;i<itslen;i++) // 임시 객체에 두개의 문자열을 더하게 만든다.
temp[i]=rhs[i];
for(unsigned short j=0;j<rhs.getlen();j++,i++)
temp[i]=rhs[i-itslen];
temp[totallen]='\0';
return temp; // 임시 객체를 리턴한다.
}
위에 for문이 잘못됐군요.
<예>
for(int i = 0; i < Len; i++)
a[i] = b[i];
a[i] = 0; <- Error!
for문 안에서 Counter 변수로 정의된 i는
for 문 안에서만 유효합니다.
이는 변수의 scope와 관련된 문제입니다.
마찬가지의 에러가 operator+= 에서도 보입니다. 수정하세요.
Dev-C++ 에서 컴파일 해 본 결과, 저 두개의 에러외엔 다른 에러는 없습니다.
물론 그렇다고 해서 결과를 보장하진 않습니다.
|