• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

멤버변수와 생성자의 관계 질문

22.10.01 18:16 작성 조회수 369

1

스크린샷 2022-10-01 오후 6.11.09.png스크린샷 2022-10-01 오후 6.06.50.png마지막질문

멤버변수에서 초기화를 하지 않으면

멤버변수가 선언될때는 메모리를안받고(쓰레기값도 저장안됨)

멤버변수가 메모리를 받는곳은 생성자부분인가요?

답변 1

답변을 작성해보세요.

0

강민철님의 프로필

강민철

2022.10.02

음 여러 질문을 하나씩 답해드리겠습니다.

  1. 네, 초기화, 대입을 동시에 하면 기본적으로 생성자로서 초기화됩니다. 다만 이는 권장할만한 방법이 아닙니다. 일반적으로 컴파일러에서 warning이 나올 거에요.

test.cc:6:21: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]

  1. 생성자입니다.

  2. "메모리를 받는다"고 언급하신 표현이 다소 모호하긴 하지만, 생성자에서도 멤버변수에서도 초기화되어있지 않으면 당연히 그 변수는 사용할 수 없습니다. 생성자 혹은 멤버변수에서 초기화해야 하고 우선순위는 생성자가 높다고 정리하시면 될 것 같습니다.

 

참고로, 소스 코드를 첨부하실 때

아래의 버튼 중 <>를 클릭하시면 소스코드를 쉽게 첨부할 수 있습니다^^

제가 질문해주신 코드를 제 환경에서 돌려보기도 편리하구요.

image

 

 

 

 

 

차경원님의 프로필

차경원

질문자

2022.10.05

ㅇㅇㅇ\

감사합니당