我想在C++中爲項目實現一種反射形式。這個想法是,你將具有標籤的類作爲一種模板註冊到地圖中,然後調用共享基類的cloneNew方法來實際創建所需的對象。但是,當我嘗試使用va_list來實現此功能時,我得到了奇怪的結果。問題代碼是:C++ va_list返回奇數值
GameObject* SphereObstacle::cloneNew(const Vector& position, double charge, const Vector& dipole, ...)
{
va_list v1;
va_start(v1, dipole);
double radius = va_arg(v1, double);
va_end(v1);
return new SphereObstacle(position, charge, dipole, radius);
}
每當我嘗試從va_list讀取它會返回一個巨大的值。它幾乎看起來像它的一個指針。我唯一的想法是,這個問題是由於這是基類中虛擬方法的實現而引起的,但是我沒有發現任何在線內容來表明這是問題所在。我做錯了什麼?
啊OK,所以把充電參數最後應該解決的問題呢?你可以在省略號內傳遞額外的參考參數還是這個問題? – Pat