0010 - Символьный С++: введение в компьютерную алгебру с использованием ООП - , ранг например, валет, король, туз и т. , ц

Тан К.Ш., Стиб В.-Х., Харди Й. Символьный С++: введение в компьютерную алгебру с использованием ООП. 2001

 Тан К.Ш., Стиб В.-Х., Харди Й. 
.  Символьный С++: введение в компьютерную алгебру с использованием ООП 
. 2001
. 5-03-003355-6
. М.: Мир
. 
. В книге представлена реализация системы компьютерной алгебры, основанной на объектно-ориентированном программир
Название: 
Символьный С++: введение в компьютерную алгебру с использованием ООП
Автор: 
Тан К.Ш., Стиб В.-Х., Харди Й.
Год: 
2001
Издательство: 
М.: Мир
Описание: 

В книге представлена реализация системы компьютерной алгебры, основанной на объектно-ориентированном программировании. В первых вводных главах излагаются требования пользователя к таким системам, описан необходимый математический аппарат, лежащий в основе разработки системы, дан обзор наиболее популярных из существующих систем (REDUCE, MAPLE, AXIOM, MATEMATICA, MuPAD). Далее обсуждаются основные понятия объектно-ориентированного программирования, языки Java, Eiffel, Smalltalk и Оберон, излагаются средства языка С++, вводится новая система компьютерной алгебры SymbolicC++.

, ранг например, валет, король, туз и т. , цвет например, черный или красный. Передача сообщений Объекты с атрибутами и методами общаются между собой посредством передачи сообщений. Сообщение содержит имя, присвоенное методу внутри объекта. Оно может также содержать несколько аргументов. Для передачи сообщений нужно две стороны. Когда объект получает сообщение, активируется связанный с ним метод. После завершения работы этого метода объект. Предположим, что служащий некой компании по имени Джон устраивает вечеринку, чтобы отпраздновать дни рождения всех служащих этой компании, родившихся в январе. Чтобы найти дни рождения . В этом процессе объект, называемый . ДР каждого служащего затем возвращается в качестве результата. Обмен сообщениями между объектами . данном примере сообщение исходит от метода, принадлежащего объекту Ахов. Адресат сообщения — другой объект, называемый служащий. Название Щения — это Запрос. а самом деле объекты разных классов могут реагировать на одно и то . Это один из видов полиморфизма, о котором речь иДет позже в этой главе. Наследование Наследование —это мощная концепция объектно. Она чаще всего используется в качестве механизма создания специальных е риантов некого более общего класса. Это называется обобщенной специалщ . Она применяется к семействам классов, имеющих похожие, но не совця. В такой ситуации полезно наследование свойстй Оно обеспечивается наличием нескольких уровней абстракции, причем каж дый уровень представляет различные варианты или уточнения некого класса Более низкие уровни строятся из более ранних. Другими словами, надкдасс является обобщением подклассов. Аналогично, подкласс данного класса пред, ставляет специализацию этого класса, относящегося к более высокому уровню Наследование также обеспечивает механизм управления классами и совместного использования общих кодов. В качестве примера рассмотрим обратимые матрицы, нижнетреугольные матрицы и симметричные матрицы. У них есть некоторые общие свойства скажем, число строк, столбцов и так далее. Эти общие свойства могут быть унаследованы от более общего класса, называемого Матрица. Подклассы наследуют свойства от надкласса Матрица. Подклассы являются специализированными вариантами этого надкласса. Надкласс Матрица может также наследовать свойства от некоторых надклассов, вроде Математическая Структура, который в свою очередь может наследовать свойства от класса, называемого Структура. Таким образом можно построить иерархию наследования. Оно позволяет классу наследовать свойства более чем от одного надкласса. Всегда требуется, чтобы правила, определяющие множественное наследование, были способны разрешить любое противоречие, которое может возникнуть, скажем конфликт названий, когда одно и то же название используется для двух разных надклассов и наследуется . ним и тем же подклассом. Отсюда ясно, что хотя множественное наследовало . Положение станет еще сложнее, если Обратимая и Симметричная наследуют от одного и того же над. Подкласс Обратимая Симметричная Матрица потенциально может наследовать свойства от одного над. Эта ситуация называется повторное наследование. Ть также другая форма наследования, называемая выборочным наследо ем. Это делает часть информации недоступной некоторым подклассам, ример, база данных компании может состоять из нескольких частей, до Ь. Менеджер имеет доступ к записям о клиентах о продажах о персонале Подклассы наследуют методы и атрибуты от надклассов. Однако подкласс может переопределить любой из методов или атрибутов, унаследованных от надкласса, а также определить дополнительно свои собственные атрибуты и методы. Это чрезвычайно мощное средство, особенно в сочетании с полиморфизмом. Эта концепция будет рассмотрена в следующем разделе настоящей главы. Иногда бывает полезно ввести классы на неком уровне, не существующие в реальности, но являющиеся удобными понятийными конструкциями. Такие классы называются абстрактными классами. Абстрактный класс обычно занимает подходящее положение в иерархии классов. Он определяет формы поведения своих наследников, но не их фактическую реализацию. Назначение этих абстрактных классов — определять, что должно быть сделано, но не как эти задачи должны решаться. Это дело наследников — обеспечивать реализацию предписанных форм поведения. В эти абстрактные классы не входят никакие экземпляры, созданные ими самими. Напротив, экземпляры создаются подклассами этих абстрактных классов, и эти экземпляры соответствуют некоторым объектам реального мира. Библиотеки классов, содержащие много классов, обычно связаны отношениями наследования. Наследование снижает избыточность и дублирование программ. Это одно из основных преимуществ использования данной концепции. Классы организованы в иерархии, причем более общие классы находятся на верхних уровнях иерархии, а более специализированные классы располагаются ниже. Это просто ГРеЧв чТо объекты. Отправитель сообщения не обязан знать, к какому клас левЧ яплежит получатель. Он лишь запрашивает некое событие с помощью с. Это позволяет объек Пе. В результате программы становятся более компактными, И Т. Существует три вида полиморфизма. Полиморфизм включения Традиционные языки программирования требуют от программистов, чтобы те точно определяли, какой метод будет применяться в процессе вычисления. Этот подход называется статическим связыванием. Полиморфизм включения позволяет принимать такие решения лишь во время работы программы, что называется динамическим связыванием . С помощью динамического связывания система обеспечивает, что нужный метод будет вызван для нужного класса в ходе работы программы. Хотя динамическое связывание гибко, оно снижает производительность программ. К счастью, эти затраты в большинстве языков минимальны. Статическое связывание, с другой стороны, надежнее и эффективнее. Этот вид полиморфизма применим к языкам программирования со строгим контролем типов, вроде языков .