C에서 정적 멤버 변수는 객체 인스턴스와 독립적으로 존재하는 클래스 변수입니다. . 일반적으로 컴파일 타임에 초기화되며 클래스의 모든 인스턴스에서 공유할 수 있습니다.
그러나 정의를 제공하지 않고 정적 멤버 변수를 선언하면 컴파일러는 "정의되지 않은 참조"에 대한 오류 메시지를 생성합니다. ." 이는 컴파일러가 정적 변수에 액세스하는 코드를 생성하기 위해 정적 변수의 메모리 위치를 알아야 하기 때문입니다.
이 오류를 해결하려면 소스 파일( .cpp 파일). 정의는 헤더 파일(.h 파일)의 선언과 동일한 이름을 가져야 하지만 앞에는 범위 연산자(::)가 와야 합니다. 예:
// header file class Example { public: static int x; }; // source file int Example::x;
이것은 정적 변수 x에 대한 메모리 위치를 정의하고 컴파일러가 이에 액세스하는 코드를 생성할 수 있도록 합니다.
특수 사례
정적의 다른 용도
정적 키워드는 다릅니다. 클래스 범위에 없는 객체나 함수에 적용될 때의 의미:
위 내용은 C에서 \'정적 멤버에 대한 정의되지 않은 참조\' 오류의 원인은 무엇이며 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!