Остальные арифметические операторы в C++
Кроме сложения, в классе можно связать со знаками
-, * и / другие арифметические
операторы. Объявление у каждого то же: operator
и нужный символ, тело описывает действие над полями.
Здесь разберем только оператор вычитания между
двумя объектами одного типа. Умножение и деление
записывают по той же схеме, если второй операнд
подходит по типу. Запишем класс Vec:
class Vec {
public:
int x = 0;
int y = 0;
Vec operator-(const Vec& other) {
Vec result;
result.x = x - other.x;
result.y = y - other.y;
return result;
}
};
Сейчас создадим два объекта и вычтем один из другого:
int main() {
Vec from;
from.x = 10;
from.y = 8;
Vec step;
step.x = 3;
step.y = 2;
Vec rest = from - step;
std::cout << rest.x << " " << rest.y << "\n";
return 0;
}
Сделайте класс Grams с полем value.
Реализуйте оператор вычитания двух масс. Из 50
отнимите 20 и выведите value результата.
Создайте два объекта Grams с 80 и 30,
получите разность через минус между ними и выведите массу.