2013-04-20 62 views
0

我希望能夠傳遞3個值到一個對象,然後存儲在一個名爲Vector3f的類中。 Vector3f有x,y,z值;將值傳遞到Vector3f

即:

Object(Vector3f Position); //Class constructor 

Object myObject(0,10,20); //Declare object 

這是正確的?

或者我必須做的:

Vector3f vect(0,10,20); 
Object myObject(vect); 

任何幫助嗎?

回答

3

如果構造函數採用單個Vector3f參數,則必須傳遞一個單一的Vector3f對象,並且三個浮點數不起作用。但是,你可以寫在一行:

Object myObject(Vector3f(0, 10, 20)); 

你也可以聲明,接受三個浮動,而不是額外的構造函數。

+1

或'對象myObject的({0,10,20})'均勻初始化FTW。 – mfontanini 2013-04-20 15:44:26

+0

@mfontanini在支持它的編譯器中。 – Angew 2013-04-20 15:44:54

+0

當然,傻我!謝謝:D – Split 2013-04-20 15:45:13

0

沒有額外的信息,你應該做的是你的第二個辦法:

Vector3f vect(0,10,20); 
Object myObject(vect); 

或者

Vector3f myObject(vect(0,10,20)); 

這將首先創建的Vector3f一個對象,然後把它作爲參數來Object類的構造函數,以Vector3f爲參數。

2

第二個因爲多個參數構造函數不能是隱式轉換的

雖然與C++11可以做Object myObject({0, 10, 20});