Пример № 1: Перегрузка оператора «==» в C++:
Для перегрузки оператора «==» в C++ мы разработали следующий класс C++:
Имя нашего класса C++ — ProductPrice. Внутри этого класса у нас есть закрытый член «цена». После этого у нас есть несколько открытых функций-членов. Первая функция, названная «userInput», принимает цену продукта в качестве входных данных от пользователя. Затем у нас есть функция для перегрузки оператора «==» в C++. В эту функцию мы передали объект класса ProductPrice. Внутри этой функции у нас есть оператор «если», который возвращает «истину», если цены на два продукта равны, в противном случае — «ложь».
Чтобы проверить это, у нас есть функция драйвера, показанная на изображении ниже:
В нашей функции «main()» мы сначала создали два объекта нашего класса. Затем мы вызвали функцию «userInput» с каждым из двух объектов один за другим, чтобы получить цены на два продукта в качестве входных данных от пользователя. После этого у нас есть оператор «если», чтобы напечатать сообщение, если две цены равны, и другое сообщение, если нет.
Мы скомпилировали эту программу, используя следующую команду:
$ г++ ComparisonOperator.cpp –o ComparisonOperator
Затем мы выполнили его с помощью команды, показанной ниже:
$ . / Оператор сравнения
После выполнения этого кода нас попросили ввести цену первого продукта, как показано на следующем изображении:
Затем нас попросили ввести цену второго продукта, как показано на изображении ниже:
Поскольку мы ввели одинаковые цены для обоих продуктов, в следующем выводе мы видим, что наш оператор «==» был успешно перегружен.
Теперь, чтобы проверить это для оператора «else», мы ввели две разные цены продукта, как показано на изображении ниже:
Пример № 2: Перегрузка оператора «!=» в C++:
Для перегрузки оператора «!=» в C++ мы разработали следующий класс C++:
Эта программа очень похожа на наш первый пример. Разница лишь в том, что мы везде заменили оператор «==» оператором «!=».
Чтобы проверить это, у нас есть функция драйвера, показанная на изображении ниже:
Мы вызвали функцию «userInput» в нашей функции «main()» с каждым из двух объектов один за другим, чтобы получить цены двух продуктов в качестве входных данных от пользователя. После этого у нас есть оператор «если», чтобы напечатать сообщение, если две цены не равны, и другое сообщение, если они равны.
Когда мы выполнили этот код с двумя разными ценами на товары, мы выяснили, что наш оператор неравенства был успешно перегружен, как вы можете видеть на следующем изображении:
Теперь, чтобы проверить его на наличие оператора «else», мы ввели две одинаковые цены продукта, как показано на изображении ниже:
Пример № 3: Перегрузка оператора «>» в C++:
Для перегрузки оператора «>» в C++ мы разработали следующий класс C++:
Эта программа также похожа на наши примеры выше. Разница лишь в том, что мы везде заменили оператор «!=» оператором «>».
Чтобы проверить это, у нас есть функция драйвера, показанная на изображении ниже:
Мы вызвали функцию «userInput» в нашей функции «main()» с каждым из двух объектов один за другим, чтобы получить цены двух продуктов в качестве входных данных от пользователя. После этого у нас есть оператор «если», чтобы напечатать сообщение, если первая цена больше другой, и другое сообщение, если нет.
Когда мы выполнили этот код с двумя разными ценами на товары, мы выяснили, что наш оператор «больше чем» был успешно перегружен, как вы можете видеть на следующем изображении:
Теперь, чтобы проверить его на наличие оператора «else», мы ввели две одинаковые цены продукта, как показано на изображении ниже:
Пример № 4: Перегрузка оператора «<» в C++:
Для перегрузки оператора «<» в C++ мы разработали следующий класс C++:
Эта программа также похожа на наши примеры выше. Разница лишь в том, что мы везде заменили оператор «>» оператором «<».
Чтобы проверить это, у нас есть функция драйвера, показанная на изображении ниже:
Мы вызвали функцию «userInput» в нашей функции «main()» с каждым из двух объектов один за другим, чтобы получить цены двух продуктов в качестве входных данных от пользователя. После этого у нас есть оператор «если», чтобы напечатать сообщение, если первая цена меньше другой, и другое сообщение, если нет.
Когда мы выполнили этот код с двумя разными ценами на товары, мы выяснили, что наш оператор «меньше чем» был успешно перегружен, как вы можете видеть на следующем изображении:
Теперь, чтобы проверить его на наличие оператора «else», мы снова ввели две разные цены продукта, но на этот раз цена первого продукта больше, чем цена второго, как показано на изображении ниже:
Пример № 5: Перегрузка оператора «>=» в C++:
Для перегрузки оператора «>=» в C++ мы разработали следующий класс C++:
Это немного отличается от наших примеров выше. На этот раз при перегрузке оператора у нас есть два условия в операторе «if», разделенные знаком «||». символ. Это означает, что этот оператор будет проверять, является ли цена одного продукта больше или равной другой.
Чтобы проверить это, у нас есть функция драйвера, показанная на изображении ниже:
Мы вызвали функцию «userInput» в нашей функции «main()» с каждым из двух объектов один за другим, чтобы получить цены двух продуктов в качестве входных данных от пользователя. После этого у нас есть оператор «если», чтобы напечатать сообщение, если первая цена больше или равна другой, и другое сообщение, если нет.
Когда мы выполнили этот код с двумя разными ценами на товары, мы выяснили, что наш оператор больше или равно был успешно перегружен, как вы можете видеть на следующем изображении:
Теперь, чтобы проверить это для оператора «else», мы ввели цену первого продукта меньше, чем вторую, как показано на изображении ниже:
Пример № 6: Перегрузка оператора «<=» в C++:
Следуя тому же методу, что и в нашем пятом примере, мы также перегрузили оператор «<=», и его код выглядит следующим образом:
Результаты выполнения этой программы с разными значениями показаны на изображениях ниже:
Вывод:
В этой статье очень хорошо объясняется, как можно перегрузить шесть операторов сравнения в C++ в Ubuntu 20.04. Мы начали с краткого введения в перегрузку операторов, затем были перегружены все шесть операторов сравнения в C++. Мы использовали один и тот же определяемый пользователем класс для демонстрации всех этих методов. Как только вы пройдете эти методы, вы сможете перегрузить эти операторы сравнения для любого другого пользовательского класса.