저를 수정하십시오 이 수행 할 때 연산자를 사용한다 : 나는 같은 결과를 얻을 모두 생각(C++) 복사 생성자 대 할당 연산자 : 할당하면서</p> <pre><code>myClass newInstant = oldInstant; </code></pre> <p>: 각 암시 적으로 사용하는 경우 내가 틀렸다하지만이 작업을 수행 할 때 나의 이해는 복사 생성자가 사용되는 경우
myClass newInstant;
newInstant = oldInstant;
을하지만 새로운 데이터에 복사 한 후 첫 번째 생성자를 사용하지 않도록 때문에 첫 번째는보다 직접적이다.
확실하지 않은 것은 함수가 전달 될 때 복사 생성자를 사용하거나 할당 연산자를 사용하여 복사된다는 것입니다. 또한 함수에서 인스턴트를 반환 할 때 사용됩니다.
일반적으로 복사 생성자와 할당 연산자가 사용되는 경우는 무엇입니까?
마지막 질문 하나, 복사하지 않고 어떻게 값을 반환 할 수 있습니까? 반환 된 인스턴트가 사본이고 이전 인스턴트가 삭제 된 경우 어떻게하면 더 효율적이 될 수 있습니까?
감사
당신이 당신의 예에서와 같은 소재 기존 하나의 개체 초기화 할 때 복사 생성자를 사용
복사 생성자는 기존 인스턴스를 사용하여 새 인스턴스를 만들고 할당 인스턴스를 사용하여 기존 인스턴스를 다른 인스턴스로 덮어 쓸 때 사용됩니다. 그래서 값으로 함수에 전달되면 새로운 인스턴스가 기존 인스턴스에서 생성되므로 ......... 값으로 반환 할 때 복사본을 피하려면 코드가 반환 값 최적화를 허용하는지 확인하거나 복사하는 데 비용이 많이 든다. –
"마지막 질문"은 별도의 질문입니다. 질문 당 1 개의 질문을 고집하십시오. 사이트를 검색하여 해당 질문에 대한 답변을 찾을 수 있어야합니다. –