"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 정적 데이터 구성원이 C ++의 클래스 선언 밖에서 정의되어야하는 이유는 무엇입니까?

정적 데이터 구성원이 C ++의 클래스 선언 밖에서 정의되어야하는 이유는 무엇입니까?

2025-03-23에 게시되었습니다
검색:179

Why Must Static Data Members Be Defined Outside the Class Declaration in C  ?
하나의 정의 규칙에 따라 프로그램 내의 각 정적 개체는 정확히 한 번 정의되어야합니다. 헤더 파일의 정적 객체의 선언이 정의 인 경우 규칙을 위반하는 번역 장치에 걸쳐 여러 정의가 발생합니다.

이를 피하기 위해 헤더 파일의 선언은 정의가 아닙니다. 대신, 단일 정의는 클래스 정의 외부, 일반적으로 기본 변환 장치의 소스 파일에 제공되어야합니다. 이를 통해 정적 객체가 전체 프로그램에서 한 번만 정의되어 하나의 정의 규칙을 준수합니다. 메모리 할당 측면에서 정적 데이터 구성원은 정적 데이터 세그먼트로 알려진 특수한 메모리 세그먼트에 할당됩니다. 프로그램 스타트 업 동안 한 번만 초기화되며 프로그램 평생 동안 가치를 유지합니다. 이는 비 정적 데이터 부재와 대조적이며, 객체가 파괴 될 때 물체가 생성되고 파괴 될 때 스택이나 힙에 할당됩니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3