首页 > 解决方案 > 如何使用 *pointer 从函数中获取第二个值?

问题描述

我有一个函数,我需要从那里获取两个值。函数只能返回一个值。我在某处读到我可以使用指针来获取第二个值,当我尝试这样做时出现错误,因此它看起来指针值不能超出可见区域。所以这意味着我只有一个值。如何使用指针从函数中获取第二个值?

标签: c++pointersconsole

解决方案


某种类型的实例是“一个值”。考虑这个类:

struct foo {
     int bar;
     double moo;
};

现在我可以编写一个返回类型值的函数:

foo asdf() { 
    foo result;
    result.bar = 42;
    result.moo = 3.14159;
    return result;
}

PS:不要使用指针。可以使用所谓的输出参数,但如果你这样做了,你应该使用引用而不是指针:

void asdf2(int& bar,int& moo) {
     bar = 42;
     moo = 3.14159;
}

像这样调用:

int x = 0;
double y = 0.;
asdf2(x,y);

但是,out 参数并不好,因为与 infoo f = asdf();相比,从函数返回的内容更明显asdf2(x,y)


推荐阅读