Оператор сравнения перегрузки in C++

C++ Программирование и разработка

Перегрузка операторов — это важнейшая концепция C ++, позволяющая реализовать функциональность встроенных операторов при работе с пользовательскими типами данных. Операторы сравнения в C ++ предназначены для сравнения двух значений друг с другом, например «==», «! =», «>», «<„, “> =» И «<=». В этой статье будут описаны методы перегрузки всех шести этих операторов сравнения на C ++ в Ubuntu 20.04.

Пример 1: Перегрузка оператора «==» в C ++

Для перегрузки оператора «==» в C ++ мы разработали следующий класс C ++:

Для перегрузки оператора «==» в C ++

Имя нашего класса C ++ — ProductPrice. Внутри этого класса у нас есть частный член «цена». После этого у нас есть несколько общедоступных функций-членов. Первая функция с именем «userInput» принимает цену продукта в качестве входных данных от пользователя. Затем у нас есть функция для перегрузки оператора «==» в C ++. Мы передали в эту функцию объект класса ProductPrice. В этой функции у нас есть оператор «если», который вернет «истина», если цены двух продуктов равны, в противном случае — «ложь».

Чтобы проверить это, у нас есть функция драйвера, показанная на изображении ниже:

Чтобы проверить это, у нас есть функция драйвера, показанная на изображени

В нашей функции main () мы сначала создали два объекта нашего класса. Затем мы вызвали функцию «userInput» с каждым из двух объектов один за другим, чтобы принять цены двух продуктов в качестве входных данных от пользователя. После этого у нас есть оператор «если» для вывода сообщения, если две цены равны, и другого сообщения, если нет.

Мы скомпилировали эту программу с помощью следующей команды:

g++ ComparisonOperator.cpp –o ComparisonOperator

Затем мы выполнили его, используя команду, показанную ниже:

./ComparisonOperator

После выполнения этого кода нас попросили ввести цену первого продукта, как показано на следующем изображении:

После выполнения этого кода нас попросили ввести цену первого продукта

Затем нас попросили ввести цену второго продукта, как показано на изображении ниже:

Затем нас попросили ввести цену второго продукта, как показано на изображении ниже

Поскольку мы ввели одинаковые цены для обоих продуктов, мы можем видеть в следующих выходных данных, что наш оператор «==» был успешно перегружен.

Поскольку мы ввели одинаковые цены для обоих продуктов

Теперь, чтобы проверить это на наличие оператора «else», мы ввели две разные цены на продукты, как показано на изображении ниже:

Читайте также:  Двумерный вектор в C++

Теперь, чтобы проверить это на наличие оператора «else», мы ввели две

Пример 2: Перегрузка оператора «! =» В C ++

Для перегрузки оператора «! =» В C ++ мы разработали следующий класс C ++:

Для перегрузки оператора «! =» В

Эта программа очень похожа на наш первый пример. Единственное отличие состоит в том, что мы везде заменили оператор «==» оператором «! =».

Чтобы проверить это, у нас есть функция драйвера, показанная на изображении ниже:

Чтобы проверить это, у нас есть функция драйвера, показанная на

Мы вызвали функцию «userInput» в нашей функции «main ()» с каждым из двух объектов один за другим, чтобы принимать цены двух продуктов в качестве входных данных от пользователя. После этого у нас есть оператор «если» для вывода сообщения, если две цены не равны, и другого сообщения, если они равны.

Когда мы выполнили этот код с двумя разными ценами на продукты, мы выяснили, что наш оператор неравенства был успешно перегружен, как вы можете видеть на следующем изображении:

Когда мы выполнили этот код с двумя разными ценами на продукты

Теперь, чтобы проверить это на наличие оператора «else», мы ввели две похожие цены на товары, как показано на изображении ниже:

Теперь, чтобы проверить это на наличие оператора «else», мы ввели

Пример 3: Перегрузка оператора «>» в ​​C ++

Для перегрузки оператора «>» в ​​C ++ мы разработали следующий класс C ++:

Для перегрузки оператора « » в ​​C ++

Эта программа также похожа на наши примеры выше. Единственное отличие состоит в том, что мы везде заменили оператор «! =» На оператор «>».

Чтобы проверить это, у нас есть функция драйвера, показанная на изображении ниже:

Чтобы проверить это, у нас есть функция драйвера

Мы вызвали функцию «userInput» в нашей функции «main ()» с каждым из двух объектов один за другим, чтобы принимать цены двух продуктов в качестве входных данных от пользователя. После этого у нас есть оператор «если» для вывода сообщения, если первая цена больше другой, и другого сообщения, если нет.

Когда мы выполнили этот код с двумя разными ценами на продукты, мы выяснили, что наш оператор больше чем был успешно перегружен, как вы можете видеть на следующем изображении:

Теперь, чтобы проверить это на наличие оператора «else», мы ввели две похожие цены на товары, как показано на изображении ниже:

Теперь, чтобы проверить это на наличие оператора «else», мы ввели двеы

Пример 4: Перегрузка оператора «<» в C ++

Для перегрузки оператора «<» в C ++ мы разработали следующий класс C ++:

Для перегрузки оператора « » в C ++ мы разраб

Эта программа также похожа на наши примеры выше. Единственное отличие состоит в том, что мы везде заменили оператор «>» оператором «<».

Чтобы проверить это, у нас есть функция драйвера, показанная на изображении ниже:

проверить это, у нас есть функция драйвера, показанная

Мы вызвали функцию «userInput» в нашей функции «main ()» с каждым из двух объектов один за другим, чтобы принимать цены двух продуктов в качестве входных данных от пользователя. После этого у нас есть оператор «если», чтобы напечатать сообщение, если первая цена меньше другой, и другое сообщение, если нет.

Читайте также:  Конструктор копирования в C++ с примерами

Когда мы выполнили этот код с двумя разными ценами на продукты, мы выяснили, что наш оператор меньше чем был успешно перегружен, как вы можете видеть на следующем изображении:

Когда мы выполнили этот код с двумя разными ценами

Теперь, чтобы проверить это на наличие оператора «else», мы снова ввели две разные цены продукта, но на этот раз цена первого продукта больше, чем цена второго, как показано на изображении ниже:

Теперь, чтобы проверить это на наличие оператора «else», мы снова ввели две

Пример 5: Перегрузка оператора «> =» в C ++

Для перегрузки оператора «> =» в C ++ мы разработали следующий класс C ++:

перегрузки оператора « » в C ++ мы разработали следующий

Это немного отличается от приведенных выше примеров. При перегрузке оператора на этот раз у нас есть два условия в операторе «if», разделенные символом «||» условное обозначение. Это означает, что это утверждение будет проверять, больше ли цена товара другой или равна ей.

Чтобы проверить это, у нас есть функция драйвера, показанная на изображении ниже:

у нас есть функция драйвера, показанная на изображении

Мы вызвали функцию «userInput» в нашей функции «main ()» с каждым из двух объектов один за другим, чтобы принимать цены двух продуктов в качестве входных данных от пользователя. После этого у нас есть оператор «если», чтобы напечатать сообщение, если первая цена больше или равна другой, и другое сообщение, если нет.

Когда мы выполнили этот код с двумя разными ценами на продукты, мы выяснили, что наш оператор, больший или равный оператору, был успешно перегружен, как вы можете видеть на следующем изображении:

этот код с двумя разными ценами на продукты, мы выяснили

Теперь, чтобы проверить это на наличие оператора «else», мы ввели цену первого продукта меньше, чем цена второго, как показано на изображении ниже:

мы ввели цену первого продукта меньше, чем цена второго, как

Пример 6: Перегрузка оператора «<=» в C ++

Следуя тому же методу, что и в нашем пятом примере, мы также перегрузили оператор «<=», и его код выглядит следующим образом:

что и в нашем пятом примере, мы также перегрузили оператор

Результаты выполнения этой программы с разными значениями показаны на изображениях ниже:

этой программы с разными значениями

Заключение

В этой статье очень хорошо объясняется, как можно перегрузить шесть операторов сравнения в C ++ в Ubuntu 20.04. Мы начали с краткого представления о перегрузке операторов, затем все шесть операторов сравнения в C ++ были перегружены. Мы использовали один и тот же определяемый пользователем класс для демонстрации всех этих методов. Пройдя через эти методы, вы сможете перегрузить эти операторы сравнения для любого другого определяемого пользователем класса.

Оцените статью
bestprogrammer.ru
Добавить комментарий