我有一個包含多個成員的結構。
這些成員應該使用另一個成員來構造。
訪問其他成員以初始化成員有效,還是我以這種方式呼叫 UB?
struct Data {
int b;
};
struct Bar {
Bar(Data& d): a(d.b){
}
int a;
};
struct Foo {
Data data;
Bar b;
};
int main() {
Foo f {.data = Data(), .b = Bar(f.data)}; // b is constructed using f.data!
}
https://godbolt.org/z/fajPjo6oa
uj5u.com熱心網友回復:
成員按照它們在struct/中宣告的順序進行初始化class,您可以在初始化期間有效地參考其他成員,只要它們在此時已經被初始化。不管初始化是如何執行的,這都成立。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/537141.html
標籤:C 指定初始化器
