우선 & 의의미는 니가 구글에서 찾아보는게 더 빠름.
8번같은경우에는
string c = a.c_str() + b;
로 되는데 c_str()의경우 string 의 a의 가장 처음 데이터의 주소값을 리턴함. string 은 무식하게 말해서 char형 벡터라고 생각하면됨.
그러니까 c = a의 주소값 + string 데이터 의 형식이 나오는데 string 연산자 오버로딩을 보면
_Myiter operator+(difference_type _Off) const
{ // return this + integer
_Myiter _Tmp = *this;
return (_Tmp += _Off);
}
_Myt& operator+=(const _Myt& _Right)
{ // append _Right
return (append(_Right));
}
을 보면 나옴
이건 MS에서 xstring 에 관한 헤더파일에 직접 선언되있는 라이브러리를 그대로 가져온거임
string c = a.c_str() + b; 의 의미는
string c.operator=(a.operator(a.c_str(),b)); 와 동일함
a.operator(a.c_str(),b) 는 return 꼴을 보면 _Tmp += _off인데 다시 operator+= 로 찾아가보면
_Tmp.operator+=(_off) 형태가 return appren(_Right)로 받는걸 알수있다. 즉, a.c_str() 의 주소값을받아 append(type string)을 해준거와
동일하기때문에 위와같이 쓰면 두 string 이더해진다
열씸히 하는구나 !!
와우 감사합니다~ 설명해달라했는데 위에 떡하니 있었군
http://dblack.tk
커뮤니티 사이트 입니다 많은 이용 부탁 드립니다.