2013-09-26 164 views
1

例如,在初始化中調用正確值的構造函數嗎?

struct A {}; 

struct B 
{ 
    B(A&& a) 
     : mA(std::move(a)) // Is A's constructor called here? 
    {} 

    A&& mA; 
}; 

A的構造函數調用的B初始化列表?或者它就像一個由指針實現的引用?

+2

創建一個構造函數並嘗試它:A:A(){cout <<「A的構造函數\ n」;} –

+0

謝謝。應該是'A:A(A const&a){cout <<「A的構造函數\ n」;}'或'A:A(A && a){cout <<「A的構造函數\ n」;}'。 – user1899020

+0

我會把兩者都放在一起,用不同的cout字符串,所以你知道什麼是什麼。移動構造函數也是如此。哦,實際上你在那裏寫了(在最後的評論中)是複製構造函數和移動構造函數。 –

回答

2

否; mA不是一個對象,而只是一個參考,所以沒有什麼可以構建的。

相關問題