我嘗試編譯代碼非常簡單數組: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我想我的代碼中只有'costs'儘可能多,並且爲了避免僅僅爲了初始化對象而發生的變異,這是我的原則。所以這裏的問題是初始化一個const對象。 –