Визначення і перевантаження операторів класу в c

У C ++ дозволяє користувачу оператори для власних типів даних. Оператор визначається, як звичайна функція-член класу, тільки після визначення повертається типу ставиться ключове слово operator.

Приклад визначення оператора складання:

Оператор може бути унарним або бінарним. Унарний оператор не приймає ніяких аргументів. Наприклад, оператор заперечення - «!». Бінарний оператор приймає додатковий параметр. Наприклад, у випадку з складанням, приймається другий доданок.

Щоб прояснити картину, спробуємо написати клас simple_fraction. який буде описувати просту дріб з цілими чисельником і знаменником. І визначимо оператори додавання, віднімання, множення і ділення для цього класу.

Для операції ділення, ми також зробили перевірку ділення на нуль.

Приклад використання класу simple_fraction:

Оператори можна перевантажувати так само, як і звичайні функції-члени класу. Наприклад, можна перевантажити оператор додавання для двох простих дробів, який буде повертати нову просту дріб. Тоді, нам доведеться привести дроби до спільного знаменника і повернути іншу просту дріб.

Завдання: удосконалює клас simple_fraction. Увійдіть або оператори додавання, віднімання, множення і ділення так, щоб можна було проводити операції над двома простими дробами і отримувати нову просту дріб. Реалізуйте приведення двох дробів до спільного знаменника.

Приклад використання майбутнього класу: