У меня задан класс BaseStats, в котором есть 4 int'а, собственно, хранящие характеристики персонажа. Я решил перегрузить оператор ">", чтобы проще было сравнивать характеристики персонажа и требования снаряжения к характеристикам, что тоже задаётся тем же классом. И тут всё, вроде бы, однозначно, если все статы персонажа больше всех требуемых стат, то статы персонажа больше, всё ок, однако эта перегрузка требует ещё и перегрузку оператора "<" с чем и происходит заминка.
А зачем тебе сравнивать все статы?
Набор с набором, тип чтобы было просто написать if (Unit.stats >= weapon.requires) {doshit();} и не хардкодить поля в методах.
Тот же вопрос хотел)
сделать всё через методы класса?Я бы так и сделал - функцию типа bool Unit.EnoughStats(stats). Проще и понятней имхо
Сравнивай сумму статов, сам же написал как нелогично сравнивать все статы по отдельности. Это как сортировка от самого сильного персонажа к самому слабому, вверху будет тот у кого суммарно больше сила статов. И ты не С++ пишешь, используй методы, я вообще офигел что в шарпе можно перегружать операторы.
что в шарпе можно перегружать операторыНаследие java.
А так, сравнивать статы по отдельности как раз таки то, что мне нужно. Как-то странно компенсировать внимание силой или ловкость выносливостью.
Комментарий недоступен