你好,我有一個小問題,我會很高興,如果你能告訴我如何解決它。 所以我有一個功能,該功能的實現是這樣的:函數返回參數C++
int* getMytree()
函數應該返回三個變量。變量被定義爲public。
如何返回三個參數?
你好,我有一個小問題,我會很高興,如果你能告訴我如何解決它。 所以我有一個功能,該功能的實現是這樣的:函數返回參數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