내 이해에 따르면, 임시 생성 된 개체가있을 때 이동 생성자가 호출됩니다. 여기에 getA()
기능은 임시 객체를 반환하지만 내 프로그램은 이동 생성자에서 메시지를 인쇄되지 않습니다이동 생성자가 호출되지 않는 이유는 무엇입니까?
obj
을 최적화하고,하지 않고 호출자에게 직접 개체를 다시 보낼 수 있습니다
#include <iostream>
using namespace std;
class A
{
public:
A()
{
cout<<"Hi from default\n";
}
A(A && obj)
{
cout<<"Hi from move\n";
}
};
A getA()
{
A obj;
cout<<"from getA\n";
return obj;
}
int main()
{
A b(getA());
return 0;
}
이동 생성자로 검색 중이므로 Google에서 해당 페이지로 연결되지 않습니다 –