OberonCore
https://forum.oberoncore.ru/

Разное поведение для объектов одного типа
https://forum.oberoncore.ru/viewtopic.php?f=29&t=181
Страница 1 из 1

Автор:  Grabli [ Среда, 26 Апрель, 2006 12:53 ]
Заголовок сообщения:  Разное поведение для объектов одного типа

Суть проблемы в том, что бы два объекта одинакового типа имели разную реализацию(сказанул):

Типа такого

Цитата:
MODULE MyProg;

TYPE MyType = POINTER TO EXTENSIBLE RECORD; END;

PROCEDURE (m: MyType) DoSomeThing (MyData: INTEGER), NEW, EMPTY;

VAR MyProc1: MyType;
MyProc2: MyType;

BEGIN
MyProc1.DoSomeThing(1);
MyProc2.DoSomeThing(2);
END MyProg.


Но, что бы у MyProc1 и у MyProc2 были разные реализации процедуры DoSomeThing. Такое реально сделать?

Или надо для MyProc1 и MyProc2 делать разные реализации типов MyType? А если нужно не два MyProc, а 100. Для каждого свою реализацию типа MyType делать?

PS: Все наверное очень просто, но пока решение для меня не очевидно.

Автор:  Trurl [ Среда, 26 Апрель, 2006 13:08 ]
Заголовок сообщения: 

Код:
TYPE MyType = POINTER TO EXTENSIBLE RECORD
  DoSomeThing: PROCEDURE (m: MyType; MyData: INTEGER);
 END;

Автор:  Grabli [ Среда, 26 Апрель, 2006 13:21 ]
Заголовок сообщения: 

Хм. Логично.

Спасибо

Автор:  Илья Ермаков [ Среда, 26 Апрель, 2006 14:28 ]
Заголовок сообщения: 

Добавлю, что в Обероне-1 Вирта ООП только так и писалось - через поля процедурного типа. И перед использованием для каждого конкретного типа настраивались ("инсталлировались") его методы.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/