|
알려주세요 님이 쓰신 글 :
: 오늘 책을 보다가 클래스에 관해서 나오던데.. 이런 말이 나왔습니다.
:
: "클래스를 정의 한다고 해서 메모리가 할당되는 것이 아니라 객체를 생성해야지 메모리가 할당이
:
: 된다" 이렇게 나왔는데요.. 그렇다면 변수로 봤을때도 마찬가지 인가요?
클래스 정의란 사용자 정의 추상 자료형(ADT: abstract data type)를 정의하는 겁니다.
타입만을 정의하는 것일 뿐, 당연히 메모리 할당은 되지 않지요.
: 예를 들어 int a; 라고 하면 메모리가 할당이 되는 것이 아니라 변수를 초기화 해야지 4byte 라는
:
: 공간이 할당 되는 건가요??
아닙니다.
int a;
를 하면 바로 4byte 메모리가 스택 공간에 할당됩니다.
그러나 할당된 공간에 있는 값은 우연히 그 주소에 있었던 쓰레기 값(garbage value)가 되지요.
변수 초기화는 이 쓰레기 값 대신 프로그래머가 지정한 의미있는 값으로 바꾼다는 얘기입니다.
|