- все варианты, которые крутятся в голове - говно. Первый (как здесь) - плохо тем, что бесполезно перезаписывается член структуры в ту же структуру. Второй (вычислить все нужное во второй функции, скопипастив часть кода из первой) - тоже неправильно. Может, посоветуете что-нибудь?
Рекомендую сразу перейти с массивов статических размеров на vector<>, если пишете на плюсах, а не на C. Варианты ответа на ваш вопрос: 1. Не особо беспокоиться о производительности, а беспокоиться об отсутствии багов. Тогда стоит сделать .sales приватным полем и никогда в него напрямую не писать — только вызывая setSales. Тогда поля max, min, average будут гарантированно корректными. В setSales, который считавает, можно завести отдельный массив и записывать в него. 2. Разделить setSales на две функции: одна копирует в приватное поле sales, а вторая пересчитывает min, max, average. Тогда нижняя функция будет выглядеть как "считать всё в поле, вызвать функцию пересчёта". А верхняя будет выглядеть как "скопировать из аргумента в поле, вызвать функцию пересчёта".
для начала посоветую убрать из функций ненужный return
Обсуждают сегодня