Унарный минус в C++
- перед числом меняет знак без второго операнда.
Для своего типа ту же роль дает унарный оператор минус
внутри класса: параметров нет, возвращается новый объект
с противоположным смыслом полей.
Исходный экземпляр не меняется - создается другой.
Запишем класс Balance с полем cents:
class Balance {
public:
int cents = 0;
Balance operator-() {
Balance result;
result.cents = -cents;
return result;
}
};
Сейчас создадим объект и применим унарный минус:
int main() {
Balance credit;
credit.cents = 250;
Balance debt = -credit;
std::cout << debt.cents << "\n";
return 0;
}
Сделайте класс Debt с полем cents.
Добавьте смену знака через минус перед значением.
Для долга 100 выведите противоположное число.
Создайте Debt с cents равным -40,
примените унарный минус и выведите cents результата.