해결된 질문
작성
·
240
·
수정됨
0
임시객체와 보이지않는 복사생성 과정 프로그램에서
- 제가 임의로 복사생성자 부분의 프로그램을
TestData(const TestData& rhs)
{
cout << "TestData(const TestData&)" << endl;
}
- 위와 같이 수정하고
- F11키로 디버깅 추적을 해보면 복사생성자가
분명 위의 생성자에서는 nData 를 접근하는 명령이 없는데도 아래 부분에 있는
private 😀
int nData = 0;
부분을 수행합니다.
왜 그런지 질문 드립니다.
아울러 제가 초기화 부분 "= 0" 를 없애 버리면 수행되지 않습니다.
답변 1
0
C++ 버전이 올라가고 모던 C++로 넘어가면서 클래스 선언 시 멤버에 대한 초깃값을 기술할 수 있도록 개선됐습니다. 어떤 생성자가 선택되어 호출되건 초깃값 할당은 마치 단순대입연산자처럼 수행됩니다. 참고하시기 바랍니다. 😄