복사생성자 2

복사 생성자

복사 생성자란? 멤버 대 멤버 복사를 실행한다. 복사 생성자를 정의하지 않으면 멤버 대 멤버의 복사를 진행하는 디폴트 복사 생성자가 자동으로 삽입된다. class Point { private: int x; int y; public: Point(int x, int y) : x(x), y(y) { } // 디폴트 생성자 Point(const Point &copy) : x(copy.x), y(copy.y){ } // 디폴트 복사 생성자 }; 깊은 복사와 얕은 복사 얕은 복사 멤버변수의 멤버 대 멤버 복사만 실행한다. Person man1("Kang", 29); Person man2 = man1; 깊은 복사 메모리 공간 할당 후 문자열 복사 할당된 메모리의 주소 값을 멤버에 저장한다. Person(const P..

Modern Cpp에 대해 정리하기 전 프리뷰

용어 사용 선언(declaration) : 코드에 사용되는 어떤 대상의 이름과 타입을 컴파일러에게 알려주는 것 std::size_t numDigits(int number); // 함수 선언 extern int x; // 객체 선언 class Widget; // 클래스 선언 template class GraphNode; // 템플릿 선언 시그니처(signature) : 함수의 매개변수 리스트와 반환 타입 위의 경우 numDigits 함수의 시그니처는 std::size_t(int) 정의(definition) : 선언에서 빠진 구체적인 세부사항을 컴파일러에게 제공하는 것 함수에 대한 정의는 함수에 대한 코드 본문을 제공하는것이다. 클래스에 대한 정의는 클래스의 멤버를 넣어 준 결과이다. 초기화(initiali..