-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
멤버변수와 생성자의 관계 질문
22.10.01 18:16 작성 조회수 369
1
마지막질문
멤버변수에서 초기화를 하지 않으면
멤버변수가 선언될때는 메모리를안받고(쓰레기값도 저장안됨)
멤버변수가 메모리를 받는곳은 생성자부분인가요?
답변을 작성해보세요.
0
강민철
2022.10.02
음 여러 질문을 하나씩 답해드리겠습니다.
네, 초기화, 대입을 동시에 하면 기본적으로 생성자로서 초기화됩니다. 다만 이는 권장할만한 방법이 아닙니다. 일반적으로 컴파일러에서 warning이 나올 거에요.
test.cc:6:21: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
생성자입니다.
"메모리를 받는다"고 언급하신 표현이 다소 모호하긴 하지만, 생성자에서도 멤버변수에서도 초기화되어있지 않으면 당연히 그 변수는 사용할 수 없습니다. 생성자 혹은 멤버변수에서 초기화해야 하고 우선순위는 생성자가 높다고 정리하시면 될 것 같습니다.
참고로, 소스 코드를 첨부하실 때
아래의 버튼 중 <>를 클릭하시면 소스코드를 쉽게 첨부할 수 있습니다^^
제가 질문해주신 코드를 제 환경에서 돌려보기도 편리하구요.
답변 1