| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 배열
- 파이썬
- Object Oriented Programming
- function
- C++
- predictive analysis
- assignment operator
- programming
- vscode
- Data Science
- Class
- pointer
- 반복문
- baekjoon
- 문자열
- 함수
- 백준
- 오블완
- Pre-processing
- 티스토리챌린지
- array
- 포인터
- const
- OOP
- 알고리즘
- string
- raw data
- pass by reference
- Python
- Deep Learning
- Today
- Total
목록copy constructor (2)
Channi Studies
INTRO int total {0}; total = 100 + 200; 위 코드에서 total은 포인터로 접근할 수 있는 변수 값, L-Value입니다. 그리고 total에 할당되는 100+200 수식은 포인터로 접근할 수 없는 R-Value입니다. C++에서 이런 값들은 이름없는 temp value로 일시적으로 저장되었다가, total과 같은 값에 복사 저장되고 난 뒤 제거됩니다. 그리고 같은 일이 temp value를 temp object로만 바뀌어서 객체에서도 발생합니다. 복사 생성자를 생각하시면 됩니다. 그런데, 복사 생성자를 반복적으로 호출하게 되면 temporary object가 그만큼 많이 생성됩니다. 반면 객체는 상대적으로 메모리를 많이 요구합니다. Deep copy를 행하면 더욱 많이 요..
C++ Class 의 Copy Constructor에는 default copy constructor이 사용하는 Shallow Copying과 Deep Copying이 있습니다. 일반적으로는 얕은 복사, shallow copying을 사용해도 괜찮지만, 얕은 복사가 문제를 야기할 때가 있습니다. 이번 포스트에서는 각각 방법을 정리해보겠습니다. Shallow Copying - 얕은 복사 Shallow copy는 컴파일러가 기본적으로 생성해주는 default copy constructor가 행하는 방법이기도 합니다. Shallow copying은 복사 대상의 객체의 모든 속성을 지닌 새로운 객체를 생성합니다. 여기서 주의해야 할 점은 포인터가 객체에서 사용될 때 입니다. 복사의 과정에서 포인터는 복사되지만, ..