C에서 정적 변수에 대한 정의되지 않은 참조
C에서 정적 변수로 작업할 때 개발자는 "정적 변수에 대한 정의되지 않은 참조" 오류가 자주 발생합니다. ." 이 문서에서는 이 문제를 살펴보고 정적 메서드를 사용하지 않고 솔루션을 제공합니다.
문제:
다음 코드를 고려하세요.
class Helloworld { public: static int x; void foo(); }; void Helloworld::foo() { Helloworld::x = 10; };
이 문서는 코드는 정적 변수 x가 비정적 메서드 foo()에서 참조되기 때문에 "정의되지 않은 참조" 오류를 발생시킵니다. 정의.
해결책:
이 문제를 해결하려면 클래스 정의 외부에 정적 멤버 변수 x에 대한 정의를 제공하는 것이 중요합니다. 이는 다음과 같이 달성할 수 있습니다:
class Helloworld { public: static int x; void foo(); }; // Define the static variable outside the class int Helloworld::x = 0; void Helloworld::foo() { Helloworld::x = 10; };
초기 값을 0으로 지정하거나 정의되지 않은 상태로 두면 x가 0으로 초기화됩니다. 또는 보다 적절한 초기값을 할당할 수도 있습니다.
위 내용은 C에서 '정적 변수에 대한 정의되지 않은 참조' 오류가 발생하는 이유는 무엇이며 정적 메서드를 사용하지 않고 이 오류를 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!