我有一个基本问题:
有一个可以接受六个参数的函数:
void dataSlot(double val1, double val2, double val3, double val4, double val5, double val6);
如何同时从两个不同的函数传递这些参数?
void functionOne()
{
// val1, val2 and val3 from functionOne
}
void functionTwo()
{
// val4, val5 and val6 from functionTwo
}
答案 0 :(得分:2)
返回每个函数产生的值,并在拥有所有值时使用它们:
#include <array>
std::array<double, 3> functionOne()
{
// ...
return {val1, val2, val3};
}
std::array<double, 3> functionTwo()
{
// ...
return {val4, val5, val6};
}
void overallFunction()
{
auto firstThree = functionOne();
auto lastThree = functionTwo();
dataSlot(firstThree[0], firstThree[1], firstThree[2], lastThree[0], lastThree[1], lastThree[2]);
}
答案 1 :(得分:0)
在文件中创建变量,然后从第一个空位开始对其进行设置;
double v1, v2, v3....;
void dataSlot(double val1, double val2, double val3....) {
v1 = val1;
v2 = val2;
v3 = val3;
....
}
然后您可以在任何地方使用v1 v2和v3。
答案 2 :(得分:0)
您可以尝试添加到您的fnc:void functionOne(double val1,double val2,double val3){do smthng} void functionTwo(double val4,double val5,double val6){do smthng} 并从void dataSlot(){functionOne(1,2,3); functionTwo(4,5,6)}
开始