반응형 디폴트복사생성자3 C++ 복사 생성자와 디폴트 복사 생성자 안녕하세요 판타지코딩입니다! 오늘은 복사 생성자와 디폴트 복사 생성자에 대해서 공부해 보겠습니다! 1. 디폴트 복사 생성자 디폴트 복사 생성자는 직접 정의하지 않아도 자동으로 호출되는 생성자입니다. 객체 생성시 기존 객체를 인자로 받아 복사할 때 복사 생성자가 호출되는데, 디폴트 복사 생성자는 정의하지 않아도 자동으로 생성됩니다. 복사할 멤버 변수 중에 동적 할당을 받는 변수가 있다면, 디폴트 복사 생성자가 호출되면 메모리를 할당하는 부분은 복사되지 않고, 메모리의 주소값만 복사됩니다. 그러므로 기존의 객체와 새로 복사한 객체의 멤버 변수가 같은 메모리를 공유하게 됩니다. 이것을 바로 '얕은 복사'라고 합니다. 얕은 복사로 인한 메모리 공유를 막기 위해 깊은 복사를 하기 위해서 '복사 생성자'를 정의합니.. 2023. 3. 2. C++ 깊은 복사와 복사 생성자 / 디폴트 복사 생성자 안녕하세요 판타지코딩입니다! 저번 시간에는 C++의 얕은 복사에 대해서 공부해 보았습니다. 오늘은 얕은 복사와 디폴트 복사 생성자에 대해서 정리하고, 복사 생성자와 깊은 복사에 대해서 공부해 보겠습니다. 디폴트 복사 생성자 객체를 생성할 때 이전에 생성한 객체를 인자로 받아 멤버 변수를 복사할 때 자동으로 호출되는 것이 바로 '디폴트 복사 생성자'입니다. 개발자가 복사 생성자를 직접 정의하지 않으면 자동으로 호출되는 생성자입니다. student s1 = s1("Education"); student s2(s1); 디폴트 복사 생성자 예제입니다. student 클래스가 정의되어 있다고 가정하고, 멤버 변수로 char *major가 있다고 가정하겠습니다. 포인터형 변수는 동적 할당을 받기 때문에 처음 객체 생.. 2023. 2. 26. C++ 얕은 복사와 복사 생성자 안녕하세요 판타지코딩입니다. C++에는 생성자를 통해서 새롭게 생성한 객체를 초기화하고, 그 객체를 다른 객체에 복사하여 새로운 객체를 초기화 할 수 있습니다. 이 때 복사 생성자를 호출해서 새로운 객체를 초기화하게 됩니다. 복사 생성자를 통해서 복사된 멤버 변수의 값은 동적 할당 된 멤버 변수일 경우 개발자가 임의로 동적 할당을 해주지 않으면 주소값이 복사됩니다. 이것을 바로 '얕은 복사'라고 합니다. 오늘은 얕은 복사와 디폴트 복사 생성자에 대해서 공부해 보겠습니다. 얕은 복사 얕은 복사란 동적 할당된 멤버 변수의 값을 새로운 객체에 복사했을 때 '값'이 아닌 '주소값'이 복사되는 것을 의미합니다. #include #include using namespace std; class student{ pub.. 2023. 2. 25. 이전 1 다음 반응형