일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- react native ios 기기 연결
- react-native
- react native mac
- 리액트 네이티브 맥
- 싸이월드
- react native 타입스크립트
- react native typescript navigate
- unity stencil buffer
- Expo
- stencil buffer
- 리액트 네이티브 설치 오류
- CSS
- javascript
- react
- 스탠실 버퍼 튜토리얼
- 벡터와 리스트의 차이
- C++
- c++ using
- GitHub
- cyworld
- 스탠실 버퍼 시작
- react native accessible
- html
- react native
- node.js
- 스탠실 버퍼 사용
- c++ 정보은닉
- node
- react native typescript
- react native typescript navigation
Archives
- Today
- Total
혀니의 이거저거 뿌시기
[C++]05-2.'깊은 복사'와 '얕은 복사' 본문
728x90
디폴트 복사 생성자의 문제점
얕은 복사 - 멤버변수가 힙의 메모리공간을 참조하는 경우에 문제가 됨
일반적인 실행 결과 = 문자열이 한 번만 출력됨.
얕은 복사 때문에 발생하는 문제
깊은복사를 하면 객체 별로 각각 문자열을 참조하므로 위와 같은 문제 해결 가능.
Person(const Person& copy):age(copy.age)
{
name = new char[strlen(copy.name) + 1];
strcpy(name, copy.name);
}
위 코드가 하는 일
-멤버변수 age의 멤버 대 멤버 복사
-메모리 공간 할당 후 문자열 복사, 할당된 메모리의 주소 값을 멤버 name에 저장
728x90
'LANG > C++' 카테고리의 다른 글
[C++]06-1.const와 관련해서 아직 못다한 이야기 (0) | 2023.05.13 |
---|---|
[C++]05-3.복사 생성자의 호출시점 (0) | 2023.05.13 |
[C++]05-1.'복사생성자'와의 첫 만남 (0) | 2023.05.13 |
[C++]04-4.클래스와 배열 그리고 포인터 (0) | 2023.05.12 |
[C++] 04-3.생성자(Constructor)와 소멸자(Destructor) (0) | 2023.05.12 |