Разрешение конфликтов имен
Разрешение конфликтов имен
Явная реализаций интерфейса может оказаться очень полезной тогда, когда реализуются несколько интерфейсов, содержащих идентичные члены, Предположим. например, что вы создали класс, реализующий следующие новые типы интерфейса.
// Три интерфейса, определяющие методы с одинаковыми именами.
public interface IDraw {
void Draw();
}
public interface IDrawToPrinter {
void Draw();
}
Если вы захотите построить класс с именем SuperImage (суперизображение), поддерживающий базовую визуализацию (IDraw), 3D-визуализацию (IDraw3D), а также сервис печати (IDrawToPrinter), то единственным способом обеспечить уникальную реализацию для каждого метода будет использование явной реализации интерфейса.
// Не выводится из Shape, но вводит конфликт имен.
public class SuperImage: IDraw, IDrawToPrinter, IDraw3D {
void IDraw.Draw() {/* Логика базовой визуализации. */}
void IDrawToPrinter.Draw() {/* Логика печати. */}
void IDraw3D.Draw() {/* Логика 3D-визуализации. */}
}
Исходный код. Проект CustomInterface размешен в подкаталоге, соответствующем главе 7.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Разрешение конфликтов шаблонов
Разрешение конфликтов шаблонов Еще одним важным аспектом работы с шаблонами является разрешение конфликтов. Если двум шаблонам удовлетворяют один и тот же узел или набор узлов, для определения применяемого шаблона XSLT учитывает их приоритет.У каждого шаблона есть
Исключение конфликтов блокировок
Исключение конфликтов блокировок В приведенном выше фрагменте кода, как и в листинге 7.6, функция pthread_cond_signal вызывалась потоком, блокировавшим взаимное исключение, относящееся к условной переменной, для которой отправлялся сигнал. Мы можем представить себе, что в худшем
2.4. Предотвращение конфликта имен с помощью пространств имен
2.4. Предотвращение конфликта имен с помощью пространств имен ПроблемаВ несвязанных между собой модулях обнаружены конфликтующие имена или требуется заранее избежать возможности таких конфликтов, создав логические группы кода.РешениеДля структурирования кода
Разрешение конфликтов посредством линейного зондирования
Разрешение конфликтов посредством линейного зондирования Если количество элементов, которые, скорее всего, должна содержать хеш-таблица, известно, можно выделить место для хеш-таблицы, содержащей это количество элементов и небольшое число свободных ячеек "на всякий
Разрешение конфликтов посредством связывания
Разрешение конфликтов посредством связывания Если мы готовы использовать дополнительные ячейки, кроме тех, которые требуются самой хеш-таблице, можно воспользоваться другой эффективной схемой разрешения конфликтов - схемой с закрытой адресацией. Этот метод называется
Разрешение конфликтов посредством группирования
Разрешение конфликтов посредством группирования Существует разновидность метода связывания для разрешения конфликтов, которая носит название группирования в блоки (bucketing). Вместо помещения связного списка в каждую ячейку, в нее помещается группа, которая по существу
10.9. Разрешение имен в определениях шаблонов А
10.9. Разрешение имен в определениях шаблонов А Внутри определения шаблона смысл некоторых конструкций может различаться в зависимости от конкретизации, тогда как смысл других всегда остается неизменным. Главную роль играет наличие в конструкции формального параметра
13.9.1. Разрешение имен в области видимости класса
13.9.1. Разрешение имен в области видимости класса Конечно, имена, используемые в области видимости класса, не обязаны быть именами членов класса. В процессе разрешения в этой области ведется поиск имен, объявленных и в других областях. Если имя, употребленное в области
13.10.1. Разрешение имен в области видимости вложенного класса
13.10.1. Разрешение имен в области видимости вложенного класса Посмотрим, как разрешаются имена в определениях вложенного класса и его членов.Имя, встречающееся в определении вложенного класса (кроме тех, которые употребляются во встроенных функциях-членах и аргументах по
16.11. Разрешение имен в шаблонах классов A
16.11. Разрешение имен в шаблонах классов A При обсуждении разрешения имен в шаблонах функций (см. раздел 10.9) мы уже говорили о том, что этот процесс выполняется в два шага. Так же разрешаются имена и в определениях шаблонов классов и их членов. Каждый шаг относится к разным
РЫНКИ: Хроники Фемиды. ВлиЯние судебных конфликтов на состояние ИКТ-отрасли
РЫНКИ: Хроники Фемиды. ВлиЯние судебных конфликтов на состояние ИКТ-отрасли Автор: Родион НасакинКак известно, право в России не прецедентное, так что одно вынесенное судебное решение еще не означает, что аналогичные спорные моменты не будут возникать в будущем. Однако