1
struct A {};
struct B
{
B(A&& a)
: mA(std::move(a)) // Is A's constructor called here?
{}
A&& mA;
};
是A
的構造函數調用的B
初始化列表?或者它就像一個由指針實現的引用?
struct A {};
struct B
{
B(A&& a)
: mA(std::move(a)) // Is A's constructor called here?
{}
A&& mA;
};
是A
的構造函數調用的B
初始化列表?或者它就像一個由指針實現的引用?
否; mA
不是一個對象,而只是一個參考,所以沒有什麼可以構建的。
創建一個構造函數並嘗試它:A:A(){cout <<「A的構造函數\ n」;} –
謝謝。應該是'A:A(A const&a){cout <<「A的構造函數\ n」;}'或'A:A(A && a){cout <<「A的構造函數\ n」;}'。 – user1899020
我會把兩者都放在一起,用不同的cout字符串,所以你知道什麼是什麼。移動構造函數也是如此。哦,實際上你在那裏寫了(在最後的評論中)是複製構造函數和移動構造函數。 –