Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回参数C++的函数_C++ - Fatal编程技术网

返回参数C++的函数

返回参数C++的函数,c++,C++,你好,我有一个小问题,如果你能告诉我如何解决它,我会很高兴。 所以我有一个函数,它是这样实现的: int* getMytree() 函数应该返回三个变量。变量被定义为public 如何返回这三个参数?很抱歉,由于函数只能返回一个值,因此无法从函数显式返回三个值。然而,你可以做两件事 1将这三个参数封装在一个结构中,然后使用函数返回该结构 struct Book { int pages; std::string name; std::string author }; Book myFunc (

你好,我有一个小问题,如果你能告诉我如何解决它,我会很高兴。 所以我有一个函数,它是这样实现的:

int* getMytree()
函数应该返回三个变量。变量被定义为public


如何返回这三个参数?

很抱歉,由于函数只能返回一个值,因此无法从函数显式返回三个值。然而,你可以做两件事

1将这三个参数封装在一个结构中,然后使用函数返回该结构

struct Book
{
int pages;
std::string name;
std::string author
};

Book myFunc ();  // This example is just for simplicity.
2更简单的方法是将指针/引用传递给希望函数更改的三个参数

void myFunc ( int& page, std::string &name, std::string &author );

除了在结构中包装三个变量之外

你可以退票


如果你需要我的建议,函数应该是模块化的,这样就可以计算单个结果。如果需要,可以使用引用传递来修改传入的参数@马哈茂德·法耶兹:若这些参数是相关的,那个么它们共享大量计算的可能性很高,而将其拆分为单独的函数将是一种浪费。为什么要用book的名称定义一个结构并将其键入book?对我来说似乎有点多余。是的,那是多余的。我说这个例子只是为了澄清我自己问的w.r.t问题……你们并没有提到返回语句应该是什么样子的?返回std::make_tuple1,2,3;
std::tuple<int, int, int> getMytree(int id)
{
   // ....
   // a= , b= c=
   return std::make_tuple( a,b,c );
}
 std::tie( var1, var2, var3 ) = getMytree() ;