한 번에 배열 구성원, 구성원을 초기화하고 모든 작동합니다 :C++ : 정적 내가 지금은 전역 범위에서이 작업을 수행 할 수 있습니다
const char* Foo::bars[3] = {"a", "b", "c"};
그러나이 훨씬 더 명확하고 자기 때문에 나는이 작업을 수행 할 수 문서화 (특히 열거 형을 색인으로 사용하는 경우) :
const char* Foo::bars[3];
bars[0] = "a";
bars[1] = "b";
bars[2] = "c";
어쨌든 가능합니까?
나는이 함수 (예를 들어, 클래스의 생성자) 안에서 할 수 있지만 프로그램의 시작 부분에서 생성자가 호출되지 않고 정적 배열을 사용하려는 경우 어떻게해야할까요? 그로 인해 문제가 발생합니다.
왜 생성자를 호출해야합니까? – Simone
OP는 Foo :: bars를 정적 멤버로 만들고 그 요소를 (메인이 실행되기 전에) 정적으로 초기화되도록합니다. –
@Emile 예, OP의 첫 번째 코드 줄은 정확히 'bars'가 정적으로 선언 된 경우에 해당합니다. 생성자가 호출되므로 전체 토론의 요점을 놓치게됩니다. – Simone