Статические методы против виртуальных методов

Цена:
5 руб.

Состав работы

material.view.file_icon
material.view.file_icon bestref-89831.doc

Необходимые программы

Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
  • Microsoft Word

Описание

Это весьма непростой и спорный вопрос. В "чистых" язы-

ках, использующих подход OOP, статические методы не существу-

ют; все методы являются виртуальными. И сторонник "чистого"

подхода OOP мог бы сказать, что все методы в нашей иерархии

объектов должны быть виртуальными именно по той причине, что

виртуальные методы стоят на первом месте. Такой аргумент мож-

но было бы признать справедливым, но еще больше истины в том,

что делать все методы только виртуальными просто непрактично

- по крайней мере, тогда, когда Вы программируете на Turbo

Pascal.

На наш взгляд, имеются два убедительных довода в пользу

того, чтобы везде, где это только возможно, использовать ста-

тические методы. Во-первых, интеллектуальный компоновщик

Turbo Pascal не может отменять неиспользуемые виртуальные ме-

тоды, а только неиспользуемые статические методы; простой акт

ввода объекта данного типа приводит к тому, что в программу

должны быть скомпонованы все виртуальные методы этого объек-

та. И во-вторых, чем больше виртуальных методов имеет объект,

тем обширнее его таблица виртуальных методов VMT: объект,

имеющий 100 виртуальных методов, использовал бы более 400

байт пространства в сегменте данных. В системе Object

Professional нет ни одного объекта, который бы имел так много

виртуальных методов, но если бы все методы были виртуальными,

в ней бы имелся не один такой объект.

Полагая, что из практических соображений невозможно во

всех случаях применять только одни виртуальные методы, мы

стоим на тех позициях, что целесообразно создавать виртуаль-

ные методы только в следующих трех случаях:

а) если мы знаем, что он должен быть отменен объек-

том-потомком,

б) если метод предназначен для того, чтобы быть отменен-

ным, и для этой цели и существует,

в) если в самой природе метода заложена возможность то-

го, что желательно его отменить в объекте-потомке.

Указатели процедур против производных типов.

Еще один концептуально спорный вопрос. Рассмотрим слу-

чай, когда для некоторого объекта необходимо обеспечить

средство, позволяющее программисту передавать такую информа-

цию для объекта, которая не всегда бывает известна на момент

компилирования. Наглядным примером такого объекта является

"PickList" ("Список_Подбора") в модуле OPPICK: он должен

обеспечить средство, которое предоставит Вам возможность "со-

общить" ему, какие элементы имеются в списке подбора.

Сторонник "чистого" метода мог бы сказать, что для реше-

ния этой проблемы следует обеспечить фиктивный виртуальный

метод, который, как предполагается, будет возвращать необхо-

димую информацию, и пусть потом программист создает производ-

ный тип, который отменяет этот метод. Но такой подход порож-

дает две проблемы. Первая заключается в том, что было бы

досадно, если бы КАЖДЫЙ раз, когда возникает потребность ис-

пользовать, например, объект PickList, пришлось создавать

производный тип, особенно в том случае, если все, что Вам

действительно требуется - это написать функцию для восстанов-

ления строки на основе номера элемента. Вторая проблема сос-

тоит в том, что при этом в большинстве случаев исключается

возможность использования одного и того же объекта PickList
Технологии работы социального педагога с многодетной семьей
Введение Глава 1. Теоретические основы проблемы работы социального педагога с многодетной семьей 1.1 Современная семья в условиях социально-экономического кризиса 1.2 Проблемы многодетных семей на современном этапе 1.3 Технологии работы социального педагога с многодетной семьей Глава 2. Практические основы проблемы работы социального педагога с многодетной семьей 2.1 Анализ работы социального педагога с многодетной семьей в условиях общеобразовательных учреждений 2.2 Практические рекомендации дл
User Elfa254 : 3 февраля 2014
22 руб.
Структуры и алгоритмы обработки данных. Часть 1, Лабораторная работа №4
Тема: Индексация и быстрый поиск. Цель работы: Освоить методы построения индексных массивов и быстрого поиска в массиве. Порядок выполнения работы: Написать программу “Телефонный справочник”, которая обрабатывает данные об абонентах телефонной станции. Каждый абонент имеет имя, адрес, телефонный номер. В программе описать массив абонентов (назовем его справочник). В справочнике должно быть не менее 20 элементов, которые заполняются либо программно, либо считываются из файла.С помощью индексов и
User stud82 : 6 октября 2012
30 руб.
Высшая математика
9 заданий Задание 1. В магазин поступило 30 холодильников. Пять из них с дефектами. Покупатель выбирает случайным образом один из них. Найти вероятность того, что он будет а) с дефектом б) без дефекта. Задание 2. Из 100 изготовленных деталей 10 оказались нестандартными. Для проверки отобрали 5 деталей. Какова вероятность, что две из них нестандартны. Задание 3. Предприятие обеспечивает регулярный выпуск продукции при безотказной поставке комплектующих от двух смежников. Вероятность отказа в пост
User тантал : 3 августа 2013
100 руб.
Гидрогазодинамика ТИУ 2018 Задача 37 Вариант 7
В канале, подводящем воду к очистным сооружениям, установлен пневматический уровнемер с самопишущим прибором (рис. 25). Нижний конец трубки 1 погружён в воду на глубину Н2 ниже самого низкого уровня воды в канале. В верхний конец трубки 1 по трубке 2 подаётся небольшой объём воздуха под давлением, достаточным для выхода воздуха в воду через нижний конец трубки 1. Определить глубину воды Н в канале, если давление воздуха в трубке 1 по показаниям самопишущего прибора 3 равно h’ и h». Расстояние
User Z24 : 2 декабря 2025
150 руб.
Гидрогазодинамика ТИУ 2018 Задача 37 Вариант 7
up Наверх