我正在尝试编写一个接收可变数量参数的函数。我的研究指导我了解 va_list 及其方法(va_start、va_end、va_arg)。问题是我传递给这个函数的参数是对在函数外部创建的对象的引用。
myClass obj1, obj2, obj3;
modifyObjects(3, obj1, 55, obj2, 33, obj, 35)
这是我尝试的实现:
void modifyObjects(int numObjects, ...)
{
va_list;
va_start(list, numObjects);
int i;
for(i=0;i<numObjects;++i)
{
myClass* tempObjectHandle = va_arg(list, &myClass ); //get the reference to the object (THIS DOES NOT WORK!)
int size = va_arg(list, int); //get the size
tempObjectHandle->set(size); //tempObjectHandle should be pointing to object defined outside the function to set its size
}
va_end(list);
}
有没有办法创建对象并将这些对象的引用变量列表传递给函数,以便一旦函数返回,所有对象都已被修改?
附加信息:
我还受到 ARM 编译器支持的 C++03 标准的限制。
谢谢!