아 헷갈리네 (사실 공부한적도 없음)


내가 저거 알게된게

class object를 local variable로 선언해서

return [rvalue]

rvalue자리로 리턴에 쓰일때

그때 무브컨스트럭터가 발생되던데


슈발... 암튼 학교에서 자료 구조 간단한 벡터 클래스 만들라햇을때 

기본 사칙연산 오버로딩 만들때 rvalue로 생성해서 내줄때가잇으니가


예를들면 c = a + b 일때

a b의 값들은 변하면 안되고 c에 새로운값넣어줘야하니까

지역변수로 하나 클래스 만들어서 거기에 값계싼하고

그걸 return하는


그 과정에서 막 생성자가 세개엿나 두개엿나 만들어지는거보고 시발 왜이러지 햇는데


알고보니까 기본적으로 C+11이상에서는 movecontructor가 있다고 (맞나?)

암튼 그리고 저상황에서 move constructor가 호출된다고


근데 assingment 아님? c = [returned] 니까 ... 아몰랑 슈발 

그래서내가 생각한게

c = (returned object) <- (returned from move ctor) <- returned from a+ operator overloading


맞음?