내부 배열 구조를 초기화하는 동안 이상한 오류가 있습니다 :C++ 내가 아주 간단한 코드 컴파일하려고
struct T {
int a[3];
int b;
int c;
};
int main() {
const int as[3] = { 5, 6, 7, };
const T t {
as, 2, 3,
};
return 0;
}
을하지만 그것은 나에게 매우 이상한 오류가 있습니다 : 내가 이해에서 같이
t.cpp: In function 'int main()':
t.cpp:11:5: error: array must be initialized with a brace-enclosed initializer
};
^
을 컴파일러는 모든 것을 한 곳에서 초기화하기를 원합니다. 필드를 개별적으로 초기화 한 다음 나중에 구조를 초기화하는 동안 어떻게 사용합니까?
'std :: array'를 구출합니다. – DeiDei
일반 배열로는 그렇게 할 수 없습니다. 'T'를 수정할 수 있습니까? – juanchopanza
@juanchopanza 가능한 한 '비용'만 내 코드에 넣고 싶습니다. 그리고 객체의 초기화를 위해서 돌연변이를 피하려면이 것이 제 원칙입니다. 그래서 여기에있는 질문은 const 객체를 초기화하는 것입니다. –