使用结构体或类:定义一个结构体或类,其中包含了所有需要返回的值。然后在函数中返回这个结构体或类的实例。
struct Result {
int value1;
double value2;
char value3;
};
Result myFunction() {
Result r;
r.value1 = 1;
r.value2 = 2.0;
r.value3 = 'a';
return r;
}
使用元组(C++11 及更高版本):使用 std::tuple
可以返回不同类型的多个值。
#include <tuple>
std::tuple<int, double, char> myFunction() {
return std::make_tuple(1, 2.0, 'a');
}
// 调用
auto [value1, value2, value3] = myFunction();
使用引用或指针参数:通过引用或指针传递额外的参数给函数,让函数可以修改这些参数。
void myFunction(int &outValue1, double &outValue2, char &outValue3) {
outValue1 = 1;
outValue2 = 2.0;
outValue3 = 'a';
}
// 调用
int value1;
double value2;
char value3;
myFunction(value1, value2, value3);
使用 std::pair(主要用于返回两个值):当只需要返回两个值时,std::pair
是一个简单的选择。
#include <utility>
std::pair<int, double> myFunction() {
return std::make_pair(1, 2.0);
}
// 调用
auto [value1, value2] = myFunction();
每种方法都有其适用场景,可以根据实际需要和个人偏好来选择。例如,当返回的值类型和数量都固定时,使用结构体或类是一个不错的选择;当返回的值类型不同或数量不定时,使用元组可能更加灵活。使用引用或指针参数则可以避免返回值,但需要更注意函数的使用方式以防止出错。