• CSE207 객체지향 강좌 및 C++ 관련, 누구나 묻고 답하는 게시판 입니다.
  • CSE207 수강생이 아니여도 편안하게 질문하세요.
  • 첨부화일은 이미지 화일 혹은 zip 화일로 업로드 하기를 권합니다.

제목[re]객체를 생성할 때 정적할당과 동적할당의 차이2019-05-04 16:09
작성자 Level 10

정적할당과 동적할당은 

1. 단순히 array와 new라면 전자는 크기를 이미 알고 있을떄 후자는 모를때 입니다.

2. 그런데... dynamic binding과 poly morphism을 고려한다면 달라집니다.

일단 지금은 1.에 대한 답을 찾는 것 같네요?


다음 질문에 대한 답은 글로 이해가 될지 모르겠네요.


B. Code에서 리턴 값을 포인터 객체로 주었습니다.

따라서 C++은 함수 안에서 만든 객체를 복사해서 호출한 곳으로 돌려주려 합니다.

이는 anonymous object로서 이름 없이 호출한 곳과 실행한 곳 사이에서 만들어지고 없어집니다.

결국 destructor로 없어진 이놈은 임시로 만들어졌다가 없어진 놈입니다.


B. Code에서 함수 declare를 Point* doSomething()로 하고,

리턴값을 return p로 하면, 중간에 복사본을 만들 이유가 없기에, destructor가 호출되지 않는 걸 볼수 있어요.


댓글