A라는 클래스가 있고 A 타입의 객체를 사용할 때,
A aObj; <- 이게 정적으로 객체를 할당한거고
A* ap = new A(); <- 이게 동적으로 할당한거잖아요.
포인터 객체를 쓰면 어느 코드를 거쳐도 "delete를 하지 않는 이상" 객체가 살아있으니까
따라서 객체를 계속 살려두고 싶고 유연하게 조작할려면 포인터 객체를 쓰면 좋을거 같긴 합니다.
그런데, aObj 처럼 일반적인 객체를 aObj& 타입의 매개변수를 받는 함수에 넣어줘도 객체를 보전은 할 수 있잖아요.
물론 특정 scope를 넘어가면(A aObj가 선언된 곳의 block statement가 끝나면) stack에 있는 aObj의 정보는 사라지겠지만..
(제가 지금 제대로 알고있는거 맞나요?)
여튼, 객체를 언제 정적 할당 혹은 동적 할당하는게 좋은지를 제대로 알고싶습니다!
배열같은 경우는 메모리를 얼마 쓸지를 몰라서 동적 할당하는 것이 좋다. 뭐 이런건 알고있지만;