복사생성자 썸네일형 리스트형 복사생성자 (깊은 복사) 얕은 복사생성자 로는 한계가 있다는걸 알았다. 바로 메모리를 동적할당시 복사를 하게 되면 동적된 메모리의 주소를 공유 하게 되며, 복사가 이루어지고 소멸자 함수가 호출되면서 에러를 발생시킨다는 것이다. 얕은복사로 에러가 나는 코드를 수정하면 다음과 같다. #include #include class Person { char *name; char *phone; int age; public: Person(char* _name,char* _phone, int _age); Person(Person& p); ~Person(); void ShowData(); }; Person::Person(char* _name, char* _phone, int _age) { name = new char[strlen(_name)+1].. 더보기 복사 생성자(얕은 복사) 복사 생성자는 말그대로 복사를 하기위한 함수이다. 물론 묵시적인 호출로 복사가 이루어 지지만 객체 끼리의 복사는 디폴트 복사 생성자로만 복사를 할수 있는 부분이 한정되어있다. class Point { int x, y; public: Point(int _x,int _y)//복사하는 대상의 직접 접근이 불가능하다. { x = _x; y = _y; } Point(const Point& p)//복사하는 대상의 직접 접근이 가능하다. { x = p.x; y = p.y; } void ShowData() { cout 더보기 이전 1 다음