我有班级成员:
LineND::LineND(double a ...)
{
coefficients.push_back(a);
va_list arguments;
va_start(arguments, a);
double argValue;
do
{
argValue = va_arg(arguments, double);
coefficients.push_back(argValue);
}while(argValue != NULL); // THIS IS A PROBLEM POINT!
va_end(arguments);
}
我不知道将使用多少参数。我需要获取每个参数并将其放入名为coefficients
. 我该怎么做?我理解,在这种情况下,该陈述while(argValue != NULL)
是不正确的。例如,我不能使用这个签名:
LineND::LineND(int numArgs, double a ...)
像这样改变条件:
while(argValue != numArgs);
关键是我无法更改方法的签名。需要用另一种方式解决这个问题。