我有一個函數:Vector::Vector integrate(Vector::Vector start, Vector::Vector end, long int elapsedtime);
,其中Vector
是我創建了一個類:通過新對象到功能
class Vector {
public:
double x, y, z;
Vector();
Vector::Vector addToSelf(Vector &right);
};
我想打電話給integrate
一個空白Vector
爲它的第一個參數。 Vector
的構造函數默認爲這樣,所以我試圖這樣做:
acceleration = integrate(Vector::Vector blank, wc.readAccelerometer(), time);
。
然而,這給了我的錯誤:
error: expected primary-expression before ‘blank’
。
我想也許我並不需要給予Vector
一個名字,當我在integrate
函數調用創建:
acceleration = integrate(Vector::Vector, wc.readAccelerometer(), time);
,但是這給了我同樣的錯誤:
expected primary-expression before ‘,’ token
。
我總是可以傳遞一個指針,更改integrate
簽名以匹配,但這似乎不必要地混亂。我還可以創建一個新的Vector
,然後通過它來integrate
:
Vector::Vector blank;
acceleration = integrate(blank, wc.readAccelerometer(), time);
這工作沒有錯誤,但我還以爲這樣做就一氣呵成將是可能的。我究竟做錯了什麼?
編輯:感謝Karl von Moor的評論,我修復了它 - 將Vector::Vector
更改爲Vector
(因爲我沒有定義命名空間)並且一切正常。謝謝。
Vector Vector也是一個命名空間,或者我有什麼需要通過Vector :: Vector來理解? – 2012-02-19 16:32:52
類「Vector」處於默認名稱空間。 'Vector :: Vector blank'是什麼意思;'? – Mahesh 2012-02-19 16:36:18
@Karl von Moor我沒有定義任何命名空間。交換'Vector :: Vector'爲'Vector'修復了一些事情 - 我只是將'Vector'從類struct中重構爲它自己的類,並沒有點擊這個事實,我不應該將它引用爲我曾是。謝謝! – simont 2012-02-19 16:36:37