Object *o = new Object();
이것과
Object o = new Object();
이것의 차이는 무엇인가요?
전자는 o 에 생성된 Object()에 해당하는 객체의 주소값이 들어가는거고
후자는 o 객체 자체가 들어가는것 아닌가요?
그런데 헷갈리는게
Object o = new Object() 로 생성하더라도 o의 주소는 &o 를 통해 알 수 있는데,
뭣하러 처음부터 Object *o = new Object() 이런식으로 하는 경우가 있나요?
지편한대로 쓰는거임- From DC 도우미+
근데 포인터료 받는게 엥간하면 더 편함- From DC 도우미+
그렇군요 감사합니다.. 뭣하러 이렇게 만들어놨는지..ㅜㅜ
아 그리고 Object o = new Object(param) 와 Object o(param) 은 같은 건가요?
ㄴ 아뇨
다른가요? int 같은 자료형은 int a(0); 이런식으로 초기화를 한다던데, 객체는 아닌가요? Java에서 C++를 하려다보니 헷갈리는게 이만저만이 아니네요..
new문법을 아셔야 할듯
new Object() 라 하면, 객체에 대한 메모리를 할당하고 객체를 초기화하는 생성자를 부르는것. 아닌가요?
ㄴ 맞습니다
댓글을 달질마세요 그런식으로 말씀하실거면.. 기분만 상하네요
기분 상할 말을 들을 짓을 하지 말던가?
그리고 후자가 컴파일이 되긴 됨? new는 포인터를 리턴해주는데?
이게 자바인줄 아나
질문자가 예상하고 있지 않을 영역까지 설명해주자면 A *a = new A() 나 A a() 로 객체를 선언해줄 수 있을텐데 new로 생성한 객체는 delete해주기 전까지 메모리에서 해제되지 않음 하지만 그냥 a()로 선언한 객체는 scope?가 끝나면 자살함
스택과 힙을 알면 저절로 해결되는데
왜 기분이 상하냐? 쟤가 말한거 다 맞는말인데. c++ new문법 한번이라도 찾아보기는 했어? 답글달아준것만으로 고맙게 생각해야지 지입맛에 안맞게 해줬다고 불평질이네
하여간에 ㅉㅉ..