- •Р.А. Файзрахманов, А.В. Архипов
- •ПРОЕКТИРОВАНИЕ АВТОМАТИЗИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ НА ОСНОВЕ ОБЪЕКТНО ОРИЕНТИРОВАННОГО ПОДХОДА
- •4.3. Подведение итогов
- •4.4. Контрольные вопросы
- •4.5. Контрольные задачи и упражнения
- •5. ДИАГРАММА КЛАССОВ
- •5.1. Теоретическая часть
- •5.2. Реализация в Rational Rose
- •5.5. Контрольные задачи и упражнения
- •6.1. Теоретическая часть
- •6.2. Реализация в Rational Rose
- •6.3. Подведение итогов
- •6.4. Контрольные вопросы
- •6.5. Контрольная задача
- •7. ДИАГРАММА ПОСЛЕДОВАТЕЛЬНОСТЕЙ
- •7.1. Теоретическая часть
- •7.2. Реализация в Rational Rose
- •7.3. Подведение итогов
- •7.4. Контрольные вопросы
- •7.5. Контрольные задачи
- •8. ДИАГРАММА СОТРУДНИЧЕСТВА
- •8.1. Теоретическая часть
- •8.2. Реализация в Rational Rose
- •8.5. Контрольные задачи
- •9. ДИАГРАММА СОСТОЯНИЙ
- •9.1. Теоретическая часть
- •9.3. Подведение итогов
- •9.4. Контрольные вопросы
- •9.5. Контрольные задачи
- •10. ДИАГРАММА ДЕЯТЕЛЬНОСТЕЙ
- •10.1. Теоретическая часть
- •10.3. Подведение итогов
- •10.4. Контрольные вопросы
- •11. ДИАГРАММА КОМПОНЕНТОВ
- •11.1. Теоретическая часть
- •11.4. Контрольные вопросы
- •11.5. Контрольные задачи
- •12.3. Подведение итогов
- •12.4. Контрольные вопросы
- •12.5. Контрольная задача
- •13. ГЕНЕРАЦИЯ КОДА
- •13.1. Алгоритм получения исходного кода C++
- •13.2. Задания для самостоятельного выполнения
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ
- •ИСПОЛЬЗОВАНИЕ МОДУЛЯ «RATIONAL ROSE C++ ANALYZER» ДЛЯ ОБРАТНОГО ВОССТАНОВЛЕНИЯ МОДЕЛИ ПО ИСХОДНОМУ КОДУ
- •РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ИСПОЛЬЗОВАНИЕМ UML
- •1. Разработка диаграммы прецедентов
- •2. Разработка диаграммы классов
- •3. Разработка диаграмм взаимодействия
- •4. Разработка диаграммы состояний
- •5. Разработка диаграммы деятельности
- •9. Разработка приложения
- •Контрольные вопросы
- •МОДЕЛЬ РАБОТЫ ПРЕДПРИЯТИЯ ОПТОВОЙ ТОРГОВЛИ. РАЗРАБОТКА АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ
- •ОГЛАВЛЕНИЕ
- •1. Деятельность и структура предприятия
- •2.1. Реализация продукции со склада
- •2.2. Возврат товара клиентом
- •2.3. Закупка продукции
- •3.1. Общие требования и принципы построения системы
- •3.2. Обеспечение связи офис - склад
- •3.3. Требования к персоналу
- •4. Диаграмма прецедентов
- •4.1. Реализация продукции со склада
- •5. Диаграмма классов
- •5.2. Контрагенты предприятия оптовой торговли
- •5.3. Продукция предприятия оптовой торговли
- •5.4. Заказ продукции
- •5.5. Накладная на получение товара
- •6. Диаграмма взаимодействия
- •12. Разработка приложения
- •ПРОЕКТИРОВАНИЕ АВТОМАТИЗИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ НА ОСНОВЕ ОБЪЕКТНО ОРИЕНТИРОВАННОГО ПОДХОДА
12.5. Контрольная задача
Найдите узел, который определен неверно.
/ |
7 |
б) / |
|
7 |
:Рабочая станция |
|
|
:Сецвер |
|
{процессор не ниже |
|
|
развертывает |
|
РШ-500, |
7 |
|
main.exe |
7 |
ОП не менее 128 МБ} |
|
|||
|
dbadmin.exe |
13. ГЕНЕРАЦИЯ КОДА
13.1. Алгоритм получения исходного кода C++
Конечным этапом проектирования любой информационной сис темы является написание программного кода. Система Rational Rose обладает весьма мощными средствами автоматической генерации кода по описанным классам. При этом Rational Rose предлагает большой выбор языков программирования, которые поддерживают кодогенерацию.
При генерации кода мы будем использовать язык программиро вания C++, поскольку он является полноценным объектно ориенти рованным языком и, как правило, изучается в качестве базового в технических вузах. Поэтому сразу установим язык проекта по умолчанию C++. Для этого в раскрывающемся списке «Default Lan guage» на вкладке «Notation» диалогового окна «Options» (вызывает ся из главного меню через пункты «Tools» > «Options») установим значение «C++» и подтвердим выбор кнопкой «Ок».
Rational Rose генерирует код, принимая во внимание номенкла туру созданных компонентов в совокупности с их стереотипами. Для каждого компонента без стереотипа система генерирует файл «.h», содержащий информацию, объявления и определения соответствую щего класса. Если же компонент имеет стереотип «Package Specifica tion», генерируется файл «.Ь» только с объявлением класса. Если же при этом существует надлежащий компонент со стереотипом «Pack age Body», генерируется и файл «.срр» с определением класса [4].
Создадим на основе диаграммы компонентов (см. рис 11.4) уточ ненную диаграмму компонентов. Превратим представленные на этой диаграмме компоненты в заголовки компонентов. Для этого необхо димо в окне спецификации каждого компонента на закладке «General» указать стереотип «Package Specification» (рис. 13.1).
Устанавливая стереотип «Package Specification», попутно убе димся, что у каждого компонента поле «Language» окна специфика ции установлено в «C++».
После того как все абстрактные компоненты преобразованы в за головки компонентов, переходим к созданию тел компонентов. Для этого каждому компоненту диаграммы, представленной на рис. 11.4, создаем парный компонент с таким же названием, но со стереотипом «Package Body». Разместим новые компоненты на рабочей области
В окне «Output Window» перечислены предупреждения о том, что для ряда операций не указан тип возвращаемого результата, и пока зано, что Rational Rose назначает для этих операций тип «void».
Судя по протоколу, представленному на рис. 13.3, ошибок при генерации кода не возникло и мы можем посмотреть сгенерирован ный код классов.
По умолчанию файлы «.Ь» и «.срр» создаются в каталоге \<Папка
ycT aH O B K H >\R ational\R ose\C ++\Source.
В качестве примера приведем содержимое полученных файлов
класса «Teacher».
Имя файла: Teacher.h
/ / # # b e g i n m o d u l e % l . 4 % .c o d e g e n _ v e r s i o n p r e s e r v e = y e s |
|
||||
/ / |
R e a d |
t h e d o c u m e n t a t i o n t o |
l e a r n m o r e a b o u t C++ |
c o d e |
|
g e n e r a t o r |
|
|
|
|
|
/ / |
v e r s i o n i n g . |
|
|
|
|
/ / # # e n d m o d u l e % l . 4 % . c o d e g e n _ v e r s i o n |
|
|
|||
/ / # # b e g i n m o d u le % 4 0 9 F A 6 0 9 0 3 A A . cm p r e s e r v e = n o |
|
||||
/ / |
%X% %Q% %Z% %W% |
|
|
|
|
/ / # # e n d m o d u le % 4 0 9 F A 6 0 9 0 3 A A .c m |
|
|
|
||
/ / # # b e g i n m o d u le % 4 0 9 F A 6 0 9 0 3 A A . c p p r e s e r v e = n o |
|
||||
/ / # # e n d m o d u l e % 4 0 9 F A 6 0 9 0 3 A A . c p |
|
|
|
||
/ / # # M o d u l e : T e a c h e r % 4 0 9 F A 6 0 9 0 3 A A ; P a c k a g e s p e c i f i c a t i o n |
|||||
/ / # # S u b s y s t e m : < T o p L e v e l > |
|
|
|
||
/ / # # |
|
S o u r c e |
f i l e : |
C : \ P r o g r a m |
|
F i l e s \ R a t i o n a l \ R o s e \ C + + \ s o u r c e \ T e a c h e r . h |
|
|
|||
# i f n d e f T e a c h e r _ h |
|
|
|
||
# d e f i n e T e a c h e r _ h 1 |
|
|
|
||
/ / # # |
b e g i n |
m o d u le % 4 0 9 F A 6 0 9 0 3 A A . a d d i t i o n a l l n c l u d e s |
p r e |
||
s e r v e r © |
|
|
|
|
|
/ / # # e n d m o d u l e % 4 0 9 F A 6 0 9 0 3 A A . a d d i t i o n a l l n c l u d e s |
|
||||
/ / # # |
b e g i n |
module%409FA60903AA. i n c l u d e s |
p r e s e r v e = y e s |
|
|
/ /ttft |
e n d m o d u le % 409FA60903AA. i n c l u d e s |
|
|
/ / S y s U s e r
#i n c l u d e " S y s U s e r . h " / / T e a c h e r
#i n c l u d e " T e a c h e r . c p p "
/ / D i s c i p l i n e O f f e r
# i n c l u d e " D i s c i p l i n e O f f e r . h "
/ / # # |
b e g i n m o d u l e % 4 0 9 F A 6 0 9 0 3 A A . d e c l a r a t i o n s p r e s e r v e = n o |
/ / # # |
e n d m o d u l e % 4 0 9 F A 6 0 9 0 3 A A . d e c l a r a t i o n s |
/ / # # b e g i n m o d u l e % 4 0 9 F A 6 0 9 0 3 A A . a d d i t i o n a l D e c l a r a t i o n s
p r e s e r v e = y e s
/ / # # |
e n d |
m o d u l e % 4 0 9 F A 6 0 9 0 3 A A . a d d i t i o n a l D e c l a r a t i o n s |
/ / # # |
b e g i n T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . p r e f a c e p r e s e r v e = y e s |
|
/ / # # |
e n d |
T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . p r e f a c e |
/ / # # C l a s s : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 |
|
|
|
||||
/ / П р е п о д а в а т е л ь |
|
|
|
|
|
||
/ / # # C a t e g o r y : P e r s o n a l D a t a % 4 0 9 E 7 C E 9 0 0 0 C |
|
|
|||||
/ / # # S u b s y s t e m : < T o p L e v e l > |
|
|
|
|
|||
/ / # # |
P e r s i s t e n c e : |
T r a n s i e n t |
|
|
|
|
|
/ / # # |
C a r d i n a l i t y / M u l t i p l i c i t y : n |
|
|
|
|||
c l a s s |
T e a c h e r |
p u b l i c S y s U s e r |
/ / # # |
I n h e r i t s : |
< u n - |
||
named>%409DEC6F0190 |
|
|
|
|
|
||
{ |
|
|
|
|
|
|
|
/ / # # |
b e g i n |
T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . i n i t i a l D e c l a r a t i o n s |
|||||
p r e s e r v e = y e s |
|
|
|
|
|
|
|
/ / # # e n d T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . i n i t i a l D e c l a r a t i o n s |
|||||||
p u b l i c : |
|
|
|
|
|
|
|
/ / # # |
C o n s t r u c t o r s ( g e n e r a t e d ) |
|
|
|
|||
|
T e a c h e r ( ) ; |
|
|
|
|
|
|
|
T e a c h e r ( c o n s t T e a c h e r & r i g h t ) ; |
|
|
||||
/ / # # |
D e s t r u c t o r ( g e n e r a t e d ) |
|
|
|
|||
|
^ T e a c h e r ( ) ; |
|
|
|
|
|
|
/ / # # A s s i g n m e n t O p e r a t i o n |
( g e n e r a t e d ) |
|
|
||||
|
T e a c h e r & o p e r a t o r = ( c o n s t T e a c h e r & r i g h t ) ; |
|
|||||
/ / # # |
E q u a l i t y O p e r a t i o n s |
( g e n e r a t e d ) |
|
|
|||
|
i n t o p e r a t o r = = ( c o n s t T e a c h e r & r i g h t ) |
c o n s t ; |
|
||||
|
i n t o p e r a t o r ! = ( c o n s t T e a c h e r & r i g h t ) |
c o n s t ; |
|
||||
/ / # # |
G e t a n d S e t O p e r a t i o n s |
f o r A s s o c i a t i o n s |
( g e n e r |
||||
a t e d ) |
|
|
|
|
|
|
|
/ / # # |
A s s o c i a t i o n : |
<unnamed>%409E41320105 |
|
||||
//## |
|
|
|
|
|
|
R o l e : |
T e a c h e r : : < t h e _ D i s c i p l i n e O f f e r > % 4 0 9 E 4 1 3 2 0 3 7 2 |
|
||||||
c o n s t |
B o u n d e d S e t B y R e f e r e n c e < D i s c i p l i n e O f f e r , 4> |
||||||
g e t _ _ t h e D i s c i p l i n e O f f e r |
() c o n s t ; |
|
|
|
|||
v o i d |
s e t _ t h e _ _ D i s c i p l i n e O f f e r |
|
( B o u n d e d S e t B y R e f e r - |
||||
e n c e < D i s c i p l i n e O f f e r , 4 > v a l u e ) ; |
|
|
|
||||
/ / A d d i t i o n a l P u b l i c D e c l a r a t i o n s |
|
|
|||||
/ / # # |
b e g i n |
T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . p u b l i c |
p r e - |
||||
s e r v e = y e s |
|
Teacher%409D05C40162.p u b l i c |
|
||||
/ / # # |
e n d |
|
|||||
p r o t e c t e d : |
|
|
|
|
|
|
|
/ / A d d i t i o n a l P r o t e c t e d D e c l a r a t i o n s |
|
||||||
/ / # # |
b e g i n |
T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . p r o t e c t e d |
p r e - |
||||
s e r v e = y e s |
|
|
|
|
|
|
|
/ / # # e n d T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . p r o t e c t e d |
|
||||||
p r i v a t e : |
|
|
|
|
|
|
|
/ / # # |
G e t |
a n d S e t |
O p e r a t i o n s |
f o r |
C l a s s A t t r i b u t e s |
||
( g e n e r a t e d ) |
|
|
|
|
|
|
|
/ / # # A t t r i b u t e : s c i e n c e D e g r e e % 4 0 9 D F 9 F 6 0 2 4 3 |
|
||||||
/ / Н а у ч н а я с т е п е н ь |
|
|
|
|
|||
c o n s t S t r i n g g e t _ s c i e n c e D e g r e e |
() c o n s t ; |
|
|||||
v o i d s e t _ s c i e n c e D e g r e e ( S t r i n g v a l u e ) ; |
|
||||||
/ / A d d i t i o n a l P r i v a t e D e c l a r a t i o n s |
|
|
|||||
/ / # # |
b e g i n |
T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . p r i v a t e |
|
||||
s e r v e = y e s |
|
|
|
|
|
|
|
/ / # # e n d T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . p r i v a t e |
|
||||||
p r i v a t e : |
/ / # # |
i m p l e m e n t a t i o n |
|
|
|
||
/ / D a t a M e m b e r s f o r C l a s s A t t r i b u t e s |
|
||||||
/ / # # |
|
|
|
|
|
|
b e g i n |
T e a c h e r : : s c i e n c e D e g r e e % 4 0 9 D F 9 F 6 0 2 4 3 . a t t r |
p r e s e r v e = n o |
p r i |
|||||
v a t e : S t r i n g |
{U} |
|
|
|
|
|
|
S t r i n g s c i e n c e D e g r e e ;
/ / # # e n d T e a c h e r : : s c i e n c e D e g r e e % 4 0 9 D F 9 F 6 0 2 4 3 . a t t r
/ / D a t a M e m b e r s f o r A s s o c i a t i o n s
/ / # # |
A s s o c i a t i o n : < u n n a m e d > % 4 0 9 E 4 1 3 2 0 1 0 5 |
/ / # # |
|
T e a c h e r : : < t h e _ D i s c i p l i n e O f f e r > % 4 0 9 E 4 1 3 2 0 3 7 2 . r o l e s e r v e = n o p u b l i c : D i s c i p l i n e O f f e r { 1 - > 0 . . 4 R H N }
b e g i n p r e -
B o u n d e d S e t B y R e f e r e n c e < D i s c i p l i n e O f f e r , 4 >
the_DisciplineOffer;
//## |
e n d |
T e a c h e r : : < t h e _ D i s c i p l i n e O f f e r > % 4 0 9 E 4 1 3 2 0 3 7 2 . r o l e
/ / A d d i t i o n a l I m p l e m e n t a t i o n D e c l a r a t i o n s
/ / # # b e g i n T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . i m p l e m e n t a t i o n
preserve=yes
|
/ / # # e n d T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . i m p l e m e n t a t i o n |
/ / # # |
b e g i n T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . p o s t s c r i p t p r e s e r v e = y e s |
/ / # # |
e n d T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 . p o s t s c r i p t |
/ / C l a s s
/ / # # |
G e t |
( i n l i n e ) |
|
T e a c h e r |
|
|
|
|
|
a n d |
S e t |
O p e r a t i o n s |
f o r |
C l a s s |
A t t r i b u t e s |
i n l i n e c o n s t S t r i n g T e a c h e r : : g e t _ s c i e n c e D e g r e e () c o n s t
{
/ / # # |
b e g i n |
T e a c h e r : : g e t _ s c i e n c e D e g r e e % 4 0 9 D F 9 F 6 0 2 4 3 . g e t |
|
p r e s e r v e = n o |
|
|
|
r e t u r n s c i e n c e D e g r e e ; |
|
||
/ / # # e n d T e a c h e r : : g e t _ s c i e n c e D e g r e e % 4 0 9 D F 9 F 6 0 2 4 3 . g e t |
|||
) |
|
|
|
i n l i n e v o i d T e a c h e r : : s e t _ s c i e n c e D e g r e e ( S t r i n g v a l u e ) |
|||
{ |
|
|
|
/ / # # |
b e g i n |
T e a c h e r : : s e t _ s c i e n c e D e g r e e % 4 0 9 D F 9 F 6 0 2 4 3 . s e t |
|
p r e s e r v e = n o |
|
|
|
s c i e n c e D e g r e e = v a l u e ; |
|
||
/ / # # e n d T e a c h e r : : s e t _ s c i e n c e D e g r e e % 4 0 9 D F 9 F 6 0 2 4 3 . s e t |
|||
} |
|
|
|
/ / # # G e t a n d S e t O p e r a t i o n s f o r A s s o c i a t i o n s |
( i n l i n e ) |
||
i n l i n e |
c o n s t B o u n d e d S e t B y R e f e r e n c e < D i s c i p l i n e O f f e r , 4 > |
||
T e a c h e r : : g e t _ t h e _ D i s c i p l i n e O f f e r () c o n s t |
|
||
{ |
|
|
|
/ / # # |
|
|
b e g i n |
T e a c h e r : : g e t _ t h e _ D i s c i p l i n e O f f e r % 4 0 9 E 4 1 3 2 0 3 7 2 . g e t |
p r e - |
||
s e r v e = n o |
|
|
|
r e t u r n t h e _ D i s c i p l i n e O f f e r ; |
|
||
/ / # # |
|
|
e n d |
T e a c h e r : : g e t _ t h e _ D i s c i p l i n e O f f e r % 4 0 9 E 4 1 3 2 0 3 7 2 . g e t |
|
}
i n l i n e v o i d T e a c h e r : : s e t _ t h e _ D i s c i p l i n e O f f e r ( B o u n d e d -
S e t B y R e f e r e n c e < D i s c i p l i n e O f f e r , 4 > v a l u e )
{
//##
T e a c h e r : : s e t _ t h e _ D i s c i p l i n e O f f e r % 4 0 9 E 4 1 3 2 0 3 7 2 . s e t s e r v e = n o
t h e _ D i s c i p l i n e O f f e r = v a l u e ;
b e g i n p r e
//## |
e n d |
T e a c h e r : : s e t _ t h e _ D i s c i p l i n e O f f e r % 4 0 9 E 4 1 3 2 0 3 7 2 . s e t |
|
} |
|
/ / # # b e g i n m o d u l e % 4 0 9 F A 6 0 9 0 3 A A . e p i l o g p r e s e r v e = y e s / / # # e n d m o d u l e % 4 0 9 F A 6 0 9 0 3 A A . e p i l o g
# e n d i f
Имя файла: Teacher.cpp
/ / # # M o d u l e : T e a c h e r % 4 0 9 F C 7 3 F 0 2 4 6 ; P a c k a g e b o d y / / # # S u b s y s t e m : < T o p L e v e l >
/ / # # S o u r c e f i l e : C : \ P r o g r a m
F i l e s \ R a t i o n a l \ R o s e \ C + + \ s o u r c e \ T e a c h e r . c p p
/ / # # b e g i n m o d u le % 4 0 9 F C 7 3 F 0 2 4 6 . a d d i t i o n a l l n c l u d e s p r e - s e r v e = n o
/ / # # e n d m o d u le % 4 0 9 F C 7 3 F 0 2 4 6 . a d d i t i o n a l l n c l u d e s
/ / # # b e g i n m o d u l e % 4 0 9 F C 7 3 F 0 2 4 6 . i n c l u d e s p r e s e r v e = y e s / / # # e n d m o d u l e % 4 0 9 F C 7 3 F 0 2 4 6 . i n c l u d e s
/ / T e a c h e r
# i n c l u d e " T e a c h e r . h"
/ / # # b e g i n m o d u l e % 4 0 9 F C 7 3 F 0 2 4 6 . d e c l a r a t i o n s p r e s e r v e = n o / / # # e n d m o d u l e % 4 0 9 F C 7 3 F 0 2 4 6 . d e c l a r a t i o n s
/ / # # b e g i n m o d u le % 4 0 9 F C 7 3 F 0 2 4 6 . a d d i t i o n a l D e c l a r a t i o n s p r e - s e r v e = y e s
/ / # # e n d m o d u l e % 4 0 9 F C 7 3 F 0 2 4 6 . a d d i t i o n a l D e c l a r a t i o n s
/ / C l a s s T e a c h e r
T e a c h e r : : T e a c h e r ()
/ / # # b e g i n T e a c h e r : : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ c o n s t . h a s i n i t p r e s e r v e = n o
/ / # # e n d T e a c h e r : : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ c o n s t . h a s i n i t / / # # b e g i n
T e a c h e r : : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ c o n s t . i n i t i a l i z a t i o n p r e - s e r v e = y e s
/ / # # e n d
T e a c h e r : : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ c o n s t . i n i t i a l i z a t i o n
{
/ / # # b e g i n T e a c h e r : : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ c o n s t . b o d y p r e -
s e r v e = y e s
/ / # # e n d T e a c h e r : : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ c o n s t . b o d y
}
T e a c h e r : : T e a c h e r ( c o n s t T e a c h e r b r i g h t )
/ / # # b e g i n T e a c h e r : : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ c o p y . h a s i n i t
p r e s e r v e = n o
/ / # # e n d T e a c h e r : : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ c o p y . h a s i n i t
/ / # # b e g i n
T e a c h e r : : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ c o p y . i n i t i a l i z a t i o n p r e - s e r v e = y e s
/ / # # e n d
T e a c h e r : : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ c o p y . i n i t i a l i z a t i o n
{
/ / # # b e g i n T e a c h e r : : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ c o p y . b o d y p r e - s e r v e = y e s
/ / # # e n d T e a c h e r : : T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ c o p y . b o d y
}
T e a c h e r : : - T e a c h e r ()
{
/ / # # b e g i n T e a c h e r : : - T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ d e s t . b o d y p r e -
s e r v e = y e s
/ / # # e n d T e a c h e r : : - T e a c h e r % 4 0 9 D 0 5 C 4 0 1 6 2 _ d e s t . b o d y
}
T e a c h e r & T e a c h e r : : o p e r a t o r = ( c o n s t T e a c h e r & r i g h t )
{
/ / # # b e g i n T e a c h e r : : o p e r a t o r = % 4 0 9 D 0 5 C 4 0 1 6 2 _ a s s i g n . b o d y
p r e s e r v e = y e s
/ / # # e n d T e a c h e r : : o p e r a t o r = % 4 0 9 D 0 5 C 4 0 1 6 2 _ a s s i g n . b o d y
}
i n t T e a c h e r : : o p e r a t o r = = ( c o n s t T e a c h e r & r i g h t ) c o n s t
{
/ / # # b e g i n T e a c h e r : : o p e r a t o r = = % 4 0 9 D 0 5 C 4 0 1 6 2 _ e q . b o d y p r e - s e r v e = y e s
/ / # # e n d T e a c h e r : : o p e r a t o r = = % 4 0 9 D 0 5 C 4 0 1 6 2 _ e q . b o d y
}
i n t T e a c h e r : : o p e r a t o r ! = ( c o n s t T e a c h e r & r i g h t ) c o n s t
{
/ / # # b e g i n T e a c h e r : : o p e r a t o r ! = % 4 0 9 D 0 5 C 4 0 1 6 2 _ n e q . b o d y p r e - s e r v e = y e s
/ / # # e n d T e a c h e r : : o p e r a t o r ! = % 4 0 9 D 0 5 C 4 0 1 6 2 _ n e q . b o d y
}
/ / A d d i t i o n a l D e c l a r a t i o n s