C++ new 질문입니다

ewqqwe의 이미지

C++을 공부하던 도중 함수에 new를 섞어 사용하는 부분 이해가 안가네요
class worker{
private : ...

public :
worker(char *name , int money){...}

main(){
handler.add(new worker("xxx" , 1000));
}

여기에서 new를 왜 사용하는지 이해가 안되네요

익명 사용자의 이미지

handler 가 뭔지는 모르지만

아마 함수원형이

add(worker* pWorker);

이런식이 아닐까요.?

포인터에 대한 이해가 좀 더 필요해보이십니당.

ewqqwe의 이미지

그렇게 되면 동적 할당으로 pWorker를 생성하게 되는건가요?

익명 사용자의 이미지

객체를 생성한다고 생각하는게 좋습니다.

힙영역에 worker 객체를 생성(worker 클래스의 vtable 크기만큼 메모리를 할당)한 후에
해당 객체의 포인터를 add() 함수에 파라미터로 넘겨주는것입니다.

ewqqwe의 이미지

이제야 이해가 가네요 ㅎㅎ 감사합니다