如何读取参数数C++
通常在我的代码中,我需要为各种变量使用特定的函数,例如如何读取参数数C++,c++,arguments,C++,Arguments,通常在我的代码中,我需要为各种变量使用特定的函数,例如 object->SetStatus("var1",1); object->SetAddress("var1",&var1); object->SetStatus("var2",1); object->SetAddress("var2",&var2); object->SetStatus("var3",1); object->SetAddress("var3",&var3); ...
object->SetStatus("var1",1); object->SetAddress("var1",&var1);
object->SetStatus("var2",1); object->SetAddress("var2",&var2);
object->SetStatus("var3",1); object->SetAddress("var3",&var3);
...
我的想法是使用一个函数,通过调用它来自动完成这项工作,即
object->function(var1,var2,var3,...);
要实现这一目标,我必须解决三个问题
调用函数时,我需要读取参数的数量
我需要以某种方式解析代码中的参数名称
由于变量的类型不同,我需要找到一种方法使函数类型透明
<>因为我在C++代码中是新手,我试图搜索类似的东西,但是我什么也找不到。
欢迎任何帮助、建议或评论 有多种方法可以做到这一点。一种方法是创建一个基类,所有变量类型都将继承自该基类。然后将映射作为参数传递给函数。变量的名称将是键,值将是实际变量。迭代遍历地图并设置值并将其赋值给方法。如果C++ 11或C++ 14中编码,可以考虑一些。关于这个主题有大量的文献,例如,这有点棘手,所以在这里解释它是不合理的。还可以阅读关于 您还可以使用
可能也有用。省略号是您要寻找的关键词,但一般来说,您可以做一些更好的事情来避免使用它们。您正在编写哪些应用程序来解释程序?在C++11或C++03中?var1的类型是什么?@BasileStarynkevitch:我正在CERN的数据分析框架中编码,该框架被称为root。类型是int、double和float、numerical。省略的问题是被调用函数无法知道传递给它的参数有多少,这就是OP所要求的。您可以添加一个计数作为第一个/第二个参数,或者具有唯一的参数结束值。另外,“函数”在做什么?可能有一种不同的方式来处理这个问题,即更多的C++。