Warning: file_put_contents(/datas/wwwroot/jiajiahui/core/caches/caches_template/2/default/show.php): failed to open stream: Permission denied in /datas/wwwroot/jiajiahui/core/libraries/classes/template_cache.class.php on line 55

Warning: chmod(): Operation not permitted in /datas/wwwroot/jiajiahui/core/libraries/classes/template_cache.class.php on line 56
函数返回参数C++ - 源码之家

函数返回参数C++

问题描述:

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

int* getMytree() 

函数应该返回三个变量。变量被定义为public。

如何返回三个参数?

+0

如果你需要我的adv冰,功能应该是模块化的,就是计算单个结果。如果需要,可以使用按引用传递来修改传入的参数。 – 2014-11-02 14:24:37

+0

通过引用的方法看起来像'void getMytree(int&a,int&b,int & c);' – 2014-11-02 14:38:35

+0

@Mahmoud Fayez:如果这些参数是相关的,那么他们分享大量计算并分解成单独函数的机会很高 – 2014-11-02 14:40:26

对不起,没有办法显式返回函数中的三个值,因为函数只能返回一个值。然而,你可以做两件事

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); 
+0

为什么用名称'book'定义一个结构,并将其定义为'Book'?似乎对我来说有点多余 – user2079303 2014-11-02 14:29:42

+0

是的,这是多余的我说的例子只是为了澄清我自己的问题... – ravi 2014-11-02 14:31:12

+0

@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() ; 
+1

你没有提到,如何返回语句应该看起来像? 返回std :: make_tuple(1,2,3); – 2014-11-02 14:36:38

+0

@ rupesh.yadav好点,更新,谢谢 – P0W 2014-11-02 14:39:10