Лекция 18. Перегрузка методов и операций в классах
Рис. 17.11
Функция . От сюда следует, что в состав полусумматора должны входить два элемента: "исключающее ИЛИ" и "И" (рис. 17.10в).
Полный одноразрядный сумматор имеет три входа и два выхода (рис. 17.11а). На третий вход подается результат переноса предыдущего сумматора. На рис. 17.11б приведена таблица истинности сумматора. Схема одноразрядного сумматора содержит два полусумматора и элемент ИЛИ (см. рис. 17.11в).
На рис. 17.12а приведена схема четырех разрядного параллельного сумматора с последовательным переносом. Число сумматоров равно числу разрядов. Выход переноса каждого предыдущего сумматора соединен со входом переноса последующего сумматора. Вход переноса сумматора первого разряда заземлен (установлен логический "0"). Слагаемые и складываются во всех разрядах одновременно, а перенос поступает с окончанием сложения в предыдущем разряде .
Сумматоры выпускаются в виде готовых изделий в составе многих серий цифровых микросхем. Например, К155 ИМ3 – четырехразрядный параллельный сумматор (рис. 17.12б). Вход переноса имеется только у младшего разряда, а выход только у старшего (). Это позволяет наращивать микросхемы и использовать их для выполнения различных арифметических операций.
Цифровые компараторы предназначены для сравнения двух чисел, заданных в двоичном коде одинаковой разрядности. Компараторы определяют равенство чисел, т. е. А = В, и неравенство, т. е. A > B или A < B, и имеют три выхода и входа. Выпускаются цифровые компараторы в виде готовых микросхем, например К555 СП1 – четырехразрядный компаратор.
При определении методов какого-нибудь класса в программах необходимо указать тип возвращаемого методом значения, а также количество параметров и тип каждого из них.
Например, программистом была разработана функция с именем sum(), которая суммировала два целых значения. Если требуется использовать подобную функцию для сложения трех целых значений, следует создать функцию с другим именем. Аналогично если требуется использовать подобную функцию для сложения значений типа float, то необходимо еще одна функция с еще одним именем.
Чтобы избежать дублирования функций, язык C# позволяет определять несколько функций с одним и тем же именем. В процессе компиляции C# принимает во внимание количество аргументов, используемых каждой функцией, и затем вызывает именно требуемую функцию. Предоставление компилятору выбора среди нескольких функций называется перегрузкой. Перегрузка является одним из способов реализации полиморфизма.
Перегрузка методов позволяет использовать одно и то же имя для нескольких функций с разным количеством или разным типом параметров.