Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 할당 연산자와 복사 생성자의 차이점은 무엇입니까?

<시간/>

복사 생성자와 할당 연산자는 한 개체를 다른 개체로 초기화하는 데 사용됩니다. 이들의 주요 차이점은 복사 생성자가 새 개체에 대해 별도의 메모리 블록을 생성한다는 것입니다. 그러나 할당 연산자는 새로운 메모리 공간을 만들지 않습니다. 참조 변수를 사용하여 이전 메모리 블록을 가리킵니다.

복사 생성자(구문)

classname (const classname &obj) {
   // body of constructor
}

할당 연산자(구문)

classname Ob1, Ob2;
Ob2 = Ob1;

복사 생성자와 할당 연산자의 자세한 차이점을 살펴보겠습니다.


복사 생성자
할당 연산자
복사 생성자는 기본적으로 오버로드된 생성자입니다.
할당 연산자는 기본적으로 연산자입니다.
이것은 이미 존재하는 개체로 새 개체를 초기화합니다.
이는 한 개체의 값을 이미 존재하는 다른 개체에 할당합니다.
복사 생성자는 기존 객체로 새 객체를 생성할 때 사용됩니다.
이 연산자는 기존 개체를 새 개체에 할당할 때 사용합니다.
두 개체 모두 별도의 메모리 위치를 사용합니다.
하나의 메모리 위치가 사용되지만 다른 참조 변수가 동일한 위치를 가리키고 있습니다.
클래스에 복사 생성자가 정의되어 있지 않으면 컴파일러에서 복사 생성자를 제공합니다.
할당 연산자가 오버로드되지 않은 경우 비트 단위 복사가 만들어집니다.