정적 데이터 멤버의 외부 정의가 어려우신가요? 수수께끼 풀기
IBM의 C 지식 센터에 따르면 클래스 선언 외부에 정적 데이터 멤버를 정의하는 것이 필수적입니다. 이는 다음과 같은 질문을 제기합니다. 이것이 왜 필요하며, 이 규칙을 규정하는 기본 메모리 할당 원칙은 무엇입니까?
이 문제를 해결하려면 단일 정의 규칙이라는 개념을 자세히 살펴보아야 합니다. C에서는 프로그램 내의 각 정적 개체를 정확히 한 번만 정의해야 합니다. 클래스 정의는 종종 헤더 파일에 포함되어 여러 번역 단위에 통합됩니다.
헤더 내의 정적 개체 선언도 정의인 경우 헤더 파일을 포함할 때마다 여러 정의가 발생합니다. 이는 One Definition Rule에 위배되어 파손될 가능성이 있습니다.
따라서 헤더 내에 정적 개체가 정의되지 않습니다. 대신 외부의 단일 정의가 코드베이스의 다른 곳에서 제공됩니다.
이론적으로 언어는 인라인 함수의 처리를 에뮬레이트하여 여러 정의를 하나로 병합할 수 있습니다. 그러나 C 언어는 이러한 접근 방식을 채택하지 않으므로 정적 데이터 멤버에 대한 외부 정의 규칙을 준수해야 합니다.
위 내용은 C의 정적 데이터 멤버를 클래스 선언 외부에서 정의해야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!