C++ 에서 "문자열" + string 과 string + "문자열" 의 차이는 무었인가요?

trymp의 이미지

C++ 초보인 사람입니다.

sting class 에서 "+" 연산자를 override 해서 append 가 가능한 것으로 알고 있는데요.

"문자열" + string 인 경우에도 연산자가 뒤에 있지 않고 앞에 있어도

알아서 "+" 연산자가 호출되는 건가요?

자기 뒤에 있는 연산자로써만 의미가 있는 것 아닌가요?

제가 초보라서 연산자가 어떤 식으로 동작하는지 햇갈려서 질문드립니다.

조언 주시면 감사하겠습니다.

kukyakya의 이미지

string 클래스의 operator+는 다음과 같이 비멤버 함수로 구현되어 있습니다.

string operator+(const char* lhs, const string& rhs);
string operator+(const string& lhs, const char* rhs);

따라서 문자열과 string의 순서와 상관없이 + 연산자가 동작하게 됩니다.

덧: overriding이 아니라 overloading입니다.