Возврат нескольких значений из функции 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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