从C++函数中返回多个值时是否有一种首选的方法?例如,想象一个将两个整数相除并返回商和余数的函数。我经常见到的一种方式是使用引用参数:
void divide(int dividend, int divisor, int& quotient, int& remainder);
一种变体是返回一个值,并通过引用参数传递另一个值:
int divide(int dividend, int divisor, int& remainder);
另一种方法是声明一个结构体来包含所有的结果,然后返回它:
struct divide_result {
int quotient;
int remainder;
};
divide_result divide(int dividend, int divisor);
这些方式中是否有一种通常更受青睐,或者还有其他建议?
编辑:在实际的代码中,可能会有超过两个结果。它们也可能是不同的类型。
struct SomeReturnType {int a,b,c; string str;} SomeFunction()
错误:不能在返回类型中定义新类型。 - MatG