Возврат нескольких значений из функции C++C++

Программы на C++. Форум разработчиков
Anonymous
Возврат нескольких значений из функции C++

Сообщение Anonymous »

Существует ли предпочтительный способ возврата нескольких значений из функции 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);
Какой из этих способов обычно предпочтителен или есть другие предложения?

Изменить: в реальном коде может быть более двух результатов. Они также могут быть разных типов.

Подробнее здесь: https://stackoverflow.com/questions/321 ... c-function

Вернуться в «C++»