
깊은 복사
- 복사된 두 객체는 완전히 독립적인 메모리를 차지
- 데이터 자체를 통째로 복사
- value type의 객체들은 깊은 복사를 하게됨.
#include <iostream>
int main(void) {
int a = 10;
int *b = new int(a);
a = 13;
std::cout << *b << std::endl;
std::cout << a << std::endl;
std::cout << b << std::endl;
std::cout << &a << std::endl;
return 0;
}
얕은 복사
- 메모리에 새로 생성이 되지 않음.
- 값을 복사하는 것이 아닌, 주소값을 복사
#include <iostream>
int main(void) {
int a = 10;
int& b = a;
a = 13;
std::cout << b << std::endl;
std::cout << a << std::endl;
std::cout << &b << std::endl;
std::cout << &a << std::endl;
return 0;
}