-1
最近,我在一個項目中看到了下面的代碼片段。我不能直接粘貼項目代碼,而是寫一個類似的代碼。我不明白爲什麼「有趣(A {a});」 可以通過編輯和工作:(有誰知道這樣的C++功能?什麼是「A {一}」呢? 非常感謝!誰知道C++下面代碼的哪個特性是?
class A {
public:
int x = 10;
int y = 20;
};
void fun(A a) {
cout << "A.x = " << a.x << endl;
cout << "A.y = " << a.y << endl;
}
int main() {
A a;
fun(A{a});
return 0;
}
我認爲這是列表初始化。更多信息在這裏:http://stackoverflow.com/questions/18222926/why-is-list-initialization-using-curly-braces-better-than-the-alternatives –
感謝您的回覆:)。一開始,我也認爲它應該是列表初始化。但是我仍然找不到任何證據表明我們可以將班級名稱放在「{}」的前面。我也做了一個測試。我將列表初始化器構造函數添加到類中。但不幸的是,它沒有被調用。所以我提出了這個問題。 –
這是一個花括號初始化程序,在C++ 11中引入的語法。 C++ 03無法直接初始化臨時POD。人們不得不訴諸愚蠢的工廠職能。這個特殊的示例副本構造了臨時的。 –