Допустим, ваша Duration
структура такова:
struct Duration {
int hours, minutes, seconds, ticks;
};
Теперь ваш метод all()
может выглядеть следующим образом:
Duration all(clock_t t) {
Duration duration;
duration.ticks = t % CLOCKS_PER_SEC;
duration.seconds = t/CLOCKS_PER_SEC;
duration.minutes = duration.seconds/60;
duration.seconds %= 60;
duration.hours = duration.minutes/60;
duration.minutes %= 60;
return duration;
}
И можно назвать так:
clock_t t = ...;
Duration duration = all(t);
Для того, чтобы ответить на ваш другой вопрос, если вы хотите перегружать all()
принять Duration
для вывода, он может выглядеть следующим образом:
void all(clock_t t, Duration &duration) {
duration.ticks = t % CLOCKS_PER_SEC;
duration.seconds = t/CLOCKS_PER_SEC;
duration.minutes = duration.seconds/60;
duration.seconds %= 60;
duration.hours = duration.minutes/60;
duration.minutes %= 60;
}
И можно назвать так:
clock_t t = ...;
Duration duration;
all(t, duration);
Если перегрузка, вы можете реализовать одну перегрузку с помощью другого, чтобы уменьшить дублирование кода, как это:
Duration all(clock_t t) {
Duration duration;
duration.ticks = t % CLOCKS_PER_SEC;
duration.seconds = t/CLOCKS_PER_SEC;
duration.minutes = duration.seconds/60;
duration.seconds %= 60;
duration.hours = duration.minutes/60;
duration.minutes %= 60;
return duration;
}
void all(clock_t t, Duration &duration) {
duration = all(t);
}
Или это:
void all(clock_t t, Duration &duration) {
duration.ticks = t % CLOCKS_PER_SEC;
duration.seconds = t/CLOCKS_PER_SEC;
duration.minutes = duration.seconds/60;
duration.seconds %= 60;
duration.hours = duration.minutes/60;
duration.minutes %= 60;
}
Duration all(clock_t t) {
Duration duration;
all(t, duration);
return duration;
}
В зависимости от определения 'Duration'. Это 'Duration' состоит из этих полей, просто верните созданную продолжительность. – Zeta
Вы должны получить вводную книгу на C++. –
Должен ли я сделать новый объект внутри функции? или я передаю объект? – FJam