선언 및 정의 이해
선언은 메모리 위치를 지정하지 않고 컴파일러에 변수의 존재를 소개합니다. 반면에 정의는 변수에 대한 메모리를 할당하고 주소를 제공합니다.
정적 데이터 멤버의 경우 선언은 클래스 정의 내에서 발생하지만 주소를 할당하지 않습니다. The actual definition must be provided separately.
Defining Static Data Members
To resolve "undefined reference" errors, explicitly define static data members outside the class definition, typically in the implementation file (.cpp). 예를 들어 다음 코드를 고려하십시오 :// 헤더 파일 (.h). 수업 예 { 정적 부울 예수 멤버; }; // 구현 파일 (.CPP) BOOL 예 :: examplestaticMember;
통합 및 열거 유형에 대한 예외
// Header file (.h) class Example { static bool exampleStaticMember; }; // Implementation file (.cpp) bool Example::exampleStaticMember;
클래스 정의 내에서 직접 초기화 할 수 있습니다 :
// Header file (.h) class Example { static bool exampleStaticMember; }; // Implementation file (.cpp) bool Example::exampleStaticMember;클래스 예 { 정적 const int 초기화 = 15; };
이 경우 구현 파일의 정의는 이니셜 라이저를 생략해야합니다. 하나의 정의 규칙에 대한 예외는 클래스 템플릿의 정적 데이터 구성원의 여러 정의를 허용합니다. Call.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3