Coding/C++

(New) C++언어 공부 0008

  • -
728x90
반응형

1. 객체의 복사

    

    

 

1-2. 얕은 복사와 깊은 복사

    • 얕은 복사(shallow copy)

        • 객체의 멤버 변수에 동적 메모리가 할당된 경우

            • 사본은 원본 객체가 할당 받은 메모리를 공유하는 문제 발생

            • 객체를 소멸시킬 때, 잘못된 메모리 접근 발생 가능

    • 깊은 복사(deep copy)

        • 객체의 멤버 변수에 동적 메모리가 할당된 경우

            • 사본은 원본이 가진 메모리 크기 만큼 별도로 동적 할당

            • 원본의 동적 메모리에 있는 내용을 사본에 복사

        • 완전한 형태의 복사

            • 사본과 원본은 메모리를 공유하는 문제 없음

        • 직접 생성자를 정의 해야함

 

1-3. 복사 생성자

    • 객체의 복사 생성시 호출되는 특별한 생성자

    • 특징

        • 한 클래스에 오직 한 개만 선언 가능

        • 복사 생성자는 보통 생성자와 클래스 내에 중복 선언 가능

        • 클래스에 대한 참조 매개 변수를 가지는 독특한 생성자

    • 복사 생성자 선언

    

 

1-4. 객체의 복사 과정

    

 

1-5. 디폴트 복사 생성자

    • 복사 생성자가 선언되어 있지 않는 클래스

        • 컴파일러는 자동으로 디폴트 복사 생성자 삽입

        

 

1-6. 묵시적 복사

    • 객체로 초기화하여 객체가 생성될 때 복사 생성자가 자동으로 호출

    • ‘값에 의한 호출’로 객체가 전달되면, 함수의 매개 변수 객체가 생성될 때 복사 생성자가 자동으로 호출

    • 함수가 객체를 반환할 때, return 문은 반환하는 객체의 복사본을 생성하여 호출한 곳으로 전달

 

2. 정적 멤버

    • 클래스의 모든 객체가 공유하는 멤버로, static 키워드를 이용하여 사용

    • 객체의 수를 카운트 하는 용도 등으로 많이 사용됨

    • 정적 멤버 함수는 객체가 생성되지 않은 상태에서 호출 됨

        • 정적 변수와 지역 변수만 사용 가능

        • this 포인터 사용 불가능

    • singleton 패턴을 이용한 설계 방식에 사용

728x90
반응형

'Coding > C++' 카테고리의 다른 글

(New) C++언어 공부 0010  (2) 2024.08.30
(New) C++언어 공부 0009  (0) 2024.08.29
(New) C++언어 공부 0007  (2) 2024.08.29
(New) C++언어 공부 0006  (0) 2024.08.29
(New) C++언어 공부 0005  (0) 2024.08.29
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.