내가 Drink 라는 클래스를 만들었고
Drink *list[50]; 을 선언했는데 (local variables 로)
선언후 초기화(new)도 안했는데 객체 접근가능해지는거 대체 뭐임???
각 인덱스마다 new 해준다음에 접근 가능한거 아니였음? 왜 Drink *list[50]; 선언만했는데 접근 가능해짐...?
궁금해서 &list[0] &list[1] 이런것들 주소 출력해 봤는데 제대로 가리키지도 않는데 어케 접근한건지 모르겠음
ㅠㅠ 아는게이 답변좀 부탁한다......
접근가능하다는게 list[0]->(아무함수) 이렇게 잘만된다는것
드링크 포인터의 주소를 출력하셨군요. - dc App
초기화를 안 해주셨으니 쓰레기 값이 포인터에 있겠는데 - dc App
컴파일러가 님 초기화햇는지 안햇는지는 모르져 - dc App
물론 실행하면 오류창 쾅 뜨지만 문법상으론 틀린건 없져 - dc App
인스턴스 자체의 메모리 위치는 쓰레기로 남겠지만, 타입에 대한 함수나 코드 정보는 프로그램상에 빌드되서 남아있을테니, 그걸 가지고 미정의 행동을 일으키는게 아닐지 - dc App
당연히 클래스 정의해놨으면 클래스함수 사용은 되지 근데 소스 작성할땐 함수 자동완성도 되고 밑에 빨간줄도 안뜨는데 빌드하면 이제 초기화안된 멤바변수를 사용했습니다 하믄서 에러띄워줌 - dc App