C에서 정적 멤버의 클래스 내 초기화
C에서는 클래스 선언 내에 정적 멤버 변수를 정의하는 것이 허용되지 않습니다. 이 작업으로 인해 "ISO C는 non-const 정적 멤버 `j'의 클래스 내 초기화를 금지합니다."라는 컴파일 오류가 발생합니다.
금지 이유:
Const 멤버에 대한 예외:
Const 정적 멤버는 다음이 허용됩니다. 초기화 후에는 수정되지 않기 때문에 클래스 선언에서 초기화됩니다. 이렇게 하면 코드 효율성이 보장되고 명시적인 초기화가 필요하지 않습니다.
표준 값의 의미:
C에서 정적 변수는 명시적으로 지정되지 않은 경우 자동으로 0으로 초기화됩니다. 초기화되었습니다. 그러나 C에서는 정적 변수가 자동으로 초기화되지 않습니다. 클래스 선언(const 멤버의 경우) 또는 별도의 .cpp 파일에서 수동으로 초기화해야 합니다.
해결책:
비 const 정적을 정의하려면 C의 멤버 변수를 클래스 선언이 아닌 별도의 .cpp 파일에서 초기화해야 합니다.
예:
// Header file class Test { public: static int j; }; // .cpp file int Test::j = 0;
위 내용은 C 클래스 내에서 Const가 아닌 정적 멤버를 초기화할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!