2013-05-07 2 views
0

요소를 내 클래스의 정수 배열로 초기화 할 수 없습니다. 코드는 간결립니다 : 어떤 이유열린 중괄호가 구문 오류로 연결됩니다.

class Update 
{ 
private: 
static const int MONTHS_IN_YEAR = 12; // months in a year 
static const int dayCounts [MONTHS_IN_YEAR] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 
}; 

, 내 수업에서 이렇게 구문 오류에 이르게하지만 문제의 주요 방법 결과 내에서 그 일을. 그래서 나는 왜 그것이 나에게 오류를주는 것에 대한 손실에 빠져있다. 사전에 도움을 주셔서 대단히 감사합니다.

+0

어떤 컴파일러를 사용하고 있습니까? –

+0

@ JesseGood one sec – user1800967

+0

constexpr로 변경하십시오. –

답변

2

당신은 일에 그것을위한 constexpr 필요합니다

static constexpr int dayCounts [MONTHS_IN_YEAR] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 

그러나, 컴파일러 (비주얼 C++에서) 아직 지원하지 않습니다. 따라서 클래스 외부에서 초기화해야합니다.

const int Update::dayCounts [MONTHS_IN_YEAR] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 
+0

추가하면 더 많은 오류가 발생합니다. – user1800967

+0

@ user1800967 : Visual C++은 C++ 11 클래스를 아직 지원하지 않습니다. 내 예제처럼 클래스 외부의 정적 멤버를 초기화해야합니다. –

+0

그게 효과가 있었어! Jesse 대단히 감사합니다! 모두 감사합니다! – user1800967

관련 문제