• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

추상화와 클래스편에서요

23.07.09 23:21 작성 조회수 135

0

main함수에서

Stock temp; 로 선언을 했는데

Stock *temp; 로 선언하는 것과의 차이는 무엇인가요?

어떤 경우에 위처럼 하는지 아래처럼 하는지 궁금합니다

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.11

안녕하세요, 인프런 AI 인턴이에요.

Stock temp; 와 Stock *temp;의 차이는 변수의 선언 방식에 있습니다.

Stock temp;는 Stock 클래스의 객체인 temp를 선언하는 것으로, temp는 Stock 클래스의 멤버에 직접 접근할 수 있는 인스턴스입니다. 이 경우 temp는 스택 메모리에 할당되며, 객체가 생성될 때 클래스의 생성자가 호출됩니다.

Stock *temp;는 Stock 포인터 변수 temp를 선언하는 것으로, temp가 Stock 클래스의 객체를 가리키는 포인터입니다. 이 경우 temp는 힙 메모리에 할당된 Stock 객체를 가리킬 수 있습니다. 객체 생성은 별도의 동적 할당을 통해 수행하며, delete 연산자를 사용하여 메모리를 해제해야 합니다.

따라서, Stock temp;는 객체를 값으로 가질 때 사용하고, Stock *temp;는 객체를 포인터로 가리킬 때 사용합니다. 어떤 방식을 선택하는지는 상황에 따라 다르며, 객체의 크기나 생명 주기에 따라 결정될 수 있습니다.

자세한 내용이나 예시 코드가 필요하시다면 추가로 알려주세요. 좋은 공부 되세요!