작성
·
189
0
main함수에서
Stock temp; 로 선언을 했는데
Stock *temp; 로 선언하는 것과의 차이는 무엇인가요?
어떤 경우에 위처럼 하는지 아래처럼 하는지 궁금합니다
답변 1
0
안녕하세요, 인프런 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;는 객체를 포인터로 가리킬 때 사용합니다. 어떤 방식을 선택하는지는 상황에 따라 다르며, 객체의 크기나 생명 주기에 따라 결정될 수 있습니다.
자세한 내용이나 예시 코드가 필요하시다면 추가로 알려주세요. 좋은 공부 되세요!