函数返回参数C++
你好,我有一个小问题,我会很高兴,如果你能告诉我如何解决它。 所以我有一个功能,该功能的实现是这样的:函数返回参数C++
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'?似乎对我来说有点多余 – user2079303 2014-11-02 14:29:42
是的,这是多余的我说的例子只是为了澄清我自己的问题... – ravi 2014-11-02 14:31:12
@NeilKirk删除... – ravi 2014-11-02 14:51:02
除了包装内部的三个变量struct
您可以返回std::tuple
std::tuple<int, int, int> getMytree(int id)
{
// ....
// a= , b= c=
return std::make_tuple(a,b,c);
}
然后用std::tie
与公共变量:
std::tie(var1, var2, var3) = getMytree() ;
你没有提到,如何返回语句应该看起来像? 返回std :: make_tuple(1,2,3); – 2014-11-02 14:36:38
@ rupesh.yadav好点,更新,谢谢 – P0W 2014-11-02 14:39:10
如果你需要我的adv冰,功能应该是模块化的,就是计算单个结果。如果需要,可以使用按引用传递来修改传入的参数。 – 2014-11-02 14:24:37
通过引用的方法看起来像'void getMytree(int&a,int&b,int & c);' – 2014-11-02 14:38:35
@Mahmoud Fayez:如果这些参数是相关的,那么他们分享大量计算并分解成单独函数的机会很高 – 2014-11-02 14:40:26