

1. 개념
1.1. 복사 생성자
한 객체의 내용을 다른 객체로 복사하여 생성된 생성자
복사 생성자가 정의되어 있지 않으면, 디폴트 복사 생성자가 존재하는데 이 디폴트 복사 생성자는 얕은 복사를 기반으로 동작
1.1.1. 얕은 복사(Shallow Copy)
객체를 복사할 때, 해당 객체만 복사
복사된 객체의 인스턴스 변수는 원본 객체의 인스턴수 변수와 같은 메모리 주소값을 참조하게 됨 -> 복사한 대상이 바뀌면은 복사된 객체도 바뀌는 문제 발생
1.1.2. 깊은 복사(Deep Copy)
객체를 복사할 때 인스턴스를 변수 전부를 복사
새롭게 동적할당을 하고, 원본의 데이터를 복사하게 됨
1.2. 대입 연산자 오버로딩
연산자를 오버로딩 (재정의) 한 것
대입 연산자도 마찬가지로 디폴트 대입 연산자는 얕은 복사를 하게됨
따라서 깊은 복사를 원하면 대입 연산자를 오버로드 하여 깊은 복사를 진행해야 함
1.3. 고정 소수점
소수 부분을 표현할 비트의 수를 미리 정해두고 10진수를 2진수로 변환한 값 그대로 비트에 넣는 것
소수 부분을 표현할 비트의 수가 커질 수록 오차는 줄어감
'42 Seoul' 카테고리의 다른 글
[42Seoul] CPP Module 01 (0) | 2024.03.09 |
---|---|
[42Seoul] CPP Module 00 (0) | 2024.03.08 |
[42Seoul] Philosophers (0) | 2023.05.04 |
[42 Seoul] minishell (0) | 2023.03.17 |
[42 Seoul] push swap (0) | 2023.02.24 |