inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

C개발자를 위한 최소한의 C++

[실습 프로젝트: CMyString] Deep copy 적용 - Step03

안녕하세요. Deep Copy 부분관련해서 질문 사항이 있습니다.

해결된 질문

392

심재성

작성한 질문수 1

0

안녕하세요. 해당 두코드의 차이에 대해서 여쭙고 싶어

CMystring 클래스에는 operator 함수를 구현하지 않은 상황에서 아래 두 코드의 실행 결과가 달라 질문드립니다.

 

1번 코드

CMystring String3 = String2;

2번 코드

CMystring String3;
String3 = String2;

 

1번 코드에서는 복사가 호출되어 String3에 새로운 메모리가 할당이되고.

2번 코드에서는 단순 대입, 즉 shallow copy 가 일어나는 것을 확인하여 String2와 같은 메모리를 참조하는 것을 확인했습니다.

 

두코드의 동작 방식을 확인하여 둘의 차이를 간접적으로 확인했으나 정확한 이유를 알고싶어 이렇게 질문게시판에 글을 남깁니다.

c++ microsoft-windows 객체지향 디자인-패턴

답변 3

1

널널한 개발자

1번은 복사 생성이고 2번은 단순 대입입니다. C++에서 인스턴스 선언 및 정의 문법은 = 기호를 이용하는 것이 아니라 괄호를 이용해 초깃값을 기술하는 것이 원칙입니다. C언어와의 호환을 위해 = 기호를 사용한 초기화가 함께 사용되는 것입니다. 이와 관련한 내용이 이미 강의에 포함되어 있습니다.

[인스턴스 선언 및 정의]

https://www.inflearn.com/course/lecture?courseSlug=c%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%B5%9C%EC%86%8C%ED%95%9C%EC%9D%98-cpp&unitId=191850

관련 내용을 다시 참고하실 것을 권합니다. 참고하시기 바랍니다. 😄

0

심재성

답변 감사합니다 !! ㅎㅎ 좋은 하루 보내세요 !!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

심재성님의 질문에 대한 답변을 찾을 수 있는 유사한 내용의 질문이 있습니다. 복사 생성자와 대입 연산자의 차이에 대한 설명과 C++에서의 Deep Copy와 Shallow Copy의 개념에 대해 설명해주고 있으니 참고하시면 좋을 것 같습니다.

아래 링크를 확인해보세요.

  • 질문 제목: 배열과 벡터에 대해 질문드립니다
  • 답변 내용: 배열은 RW가 가능한 데이터 영역 메모리(보통 스택이나 힙)를 관리하는 방법인 유도형(자료형)입니다. C++의 vector<>는 STL이 제공하는 형식으로, 배열처럼 보이지만 내부는 연결 리스트가 될 수도 있고, 배열이 되기도 합니다. 복사 생성자와 대입 연산자의 차이에 대한 설명도 포함되어 있습니다.

인터페이스 상속과 추상 자료형 2:00 질문

0

50

1

13분 42초의 예제

0

52

2

네임스페이스 스코프 내에서 정의된 변수, 함수들이 위치하는 곳 질문

0

47

1

소멸자 가상함수 질문

0

55

2

이동생성자의 매개변수로 넘어가는 임시객체의 값 유지 관련하여 질문이 있습니다.

0

63

2

임시 객체 복사 생성자 질문드립니다

0

66

2

변수 바인딩에 대한 의문점

0

113

1

C++ 파일 구조 질문

0

128

1

빈 포인터에 멤버함수 호출

0

104

1

파생클래스에서 virtual함수를 선언에 대한 질문입니다.

0

116

2

순수 가상 클래스 선언과 일반 인트 변수의 선언과 다른가요?

0

137

2

안녕하세요. 이동의미론에 대해 제가 잘 이해했는지 궁금합니다.

0

132

1

인스턴스의 개념에 대해 int a(3), int(5) 예시를 바탕으로한 질문입니다.

0

189

2

식별자 검색 순서 관련 namespace 생략 관련 오류에 관한 질문

0

175

1

마지막 주소록 예제 c 파일 한글 깨짐 현상

0

190

1

nullprt vs null

0

153

2

쓸데없지만 질문드리고싶습니다

0

181

1

복사 생성자 질문 드립니다.

0

221

1

생성자 궁금한거 있습니다

0

218

2

단순대입 오류 발생 이유

0

235

1

네가지 형변환 강의 질문

0

283

1

CMyString Step10 강의 질문

0

174

1

임시 객체와 보이지 않는 복사 생성 강의 질문

0

268

2

섹션8 3번째 강의 (실습 프로젝트 - 문자열 필터개선) 질문

0

219

2