-1
이 같은 세 가지 개체를 만드는 경우 :기본 생성자 호출
A myA; // line 1
A myA2 = A(); // line 2
A myA3 = myA; // line 3
내가 복사 생성자가 호출 두 번째 줄에 생각을. 하지만이 (Visual Studio) 줄 1 및 2 줄 때 기본 생성자를 호출하십시오. 물론 3 행째는 복사 생성자를 호출합니다. 따라서 라인 1과 라인 2 사이에는 차이가없는 것으로 보입니다. 둘 다 기본 구문을 호출합니다. 그렇다면 왜 다른 구문을 사용합니까? 그런데
내 TestClass에 A는 형태 가지고
class A {
public:
A() { cout << "default ctor is called..." << endl; }
A(const A &obj) { cout << "copy ctor is called..." << endl; }
};
참조 : [복사 추출 및 반환 값 최적화 란 무엇입니까?] (https://stackoverflow.com/questions/12953127/what-are-copy-elision-and-return-value-optimization). – WhozCraig
"복사 elision" – Angew