C++ không hỗ trợ trả về nhiều giá trị trực tiếp. Thay vì output parameter, dùng std::tuple (nhiều kiểu) hoặc std::pair (2 giá trị).
Ví dụ
#include <iostream>
#include <tuple>
#include <utility>
#include <string>
using namespace std;
tuple<int, string, char> func_tuple(int x, string y) {
return make_tuple(x, y, 'A');
}
pair<int, string> func_pair(int x, string y) {
return make_pair(x, y);
}
int main() {
int a; string b; char c;
tie(a, b, c) = func_tuple(48, "Hello");
auto p = func_pair(89, "World");
cout << "Tuple: (" << a << ", " << b << ", " << c << ")\n";
cout << "Pair: (" << p.first << ", " << p.second << ")\n";
}Kết quả
Tuple: (48, Hello, A) Pair: (89, World)
Lưu ý thêm: bài gốc có phần nói về nullptr trùng lặp với bài khác.