gpt4 book ai didi

c++ - 函数调用中参数引用的变量列表

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:42 24 4
gpt4 key购买 nike

我正在尝试编写一个接受可变数量参数的函数。我的研究指导我了解 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 标准。

谢谢!

最佳答案

myClass* tempObjectHandle = va_arg(list, &myClass );

这应该是 myClass* tempObjectHandle = va_arg(list, myClass* );

你一直说你正在传递对 modifyObjects 的引用。事实上,你是在传递指针。

关于c++ - 函数调用中参数引用的变量列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17933029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com