클래스의 일부 함수가 실제로 객체에 액세스하지 못하는 것으로 나타났습니다. 그래서 나는 그것들을 static
으로 만들었습니다. 그렇다면 컴파일러는 액세스하는 모든 변수가 정적이어야한다는 것을 알려주었습니다. 나는 문자열 변수를 많이 가지고있다.C++에서 클래스의 정적 변수를 초기화 하시겠습니까?
string RE_ANY = "([^\\n]*)";
string RE_ANY_RELUCTANT = "([^\\n]*?)";
등등. 나는 결코 변경하지 않기 때문에 모두 static const
로 만들었습니다. 그러나 내 프로그램은 클래스 밖으로 이동하면 컴파일됩니다. 그렇지 않으면 MSVC++ 2010 "정적 정적 정수 변수 만 클래스 내에서 초기화 될 수 있습니다."라는 불만이 있습니다.
글쎄 그건 불행한 일입니다. 해결 방법이 있습니까? 내가 속한 반 안으로 그들을 남겨두고 싶다.
이들은 객체의 아무 것도 액세스하지 않고, 참조 인수. 그러므로 그들은 아마도'const'와'static' 둘 다 있어야합니다. –
@Felix : 가능하지 않습니다.'const'는'this'를 수정하지 않는다는 것을 의미하며,'static' 메소드에는'this'가 없습니다. –
@Matthieu : 아주 좋은 설명. 그래서'정적'이 맞습니다. –